diff options
author | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-04-14 23:38:50 -0700 |
---|---|---|
committer | Nick Kallen <nkallen@nick-kallens-computer-2.local> | 2008-04-14 23:38:50 -0700 |
commit | 3d3e15985218c329b9d0507d389bb1e56eba99d2 (patch) | |
tree | c3f0eac96efe8568fbacc1cee32c5fe1f1b48195 /spec/doubles | |
parent | 5a2d4f5475b8a040e2ed2da826afe50f0b3824c7 (diff) | |
download | rails-3d3e15985218c329b9d0507d389bb1e56eba99d2.tar.gz rails-3d3e15985218c329b9d0507d389bb1e56eba99d2.tar.bz2 rails-3d3e15985218c329b9d0507d389bb1e56eba99d2.zip |
- fixed hash ordering
- organized doubles (previously called 'fakes')
Diffstat (limited to 'spec/doubles')
-rw-r--r-- | spec/doubles/database.rb | 47 | ||||
-rw-r--r-- | spec/doubles/hash.rb | 23 |
2 files changed, 70 insertions, 0 deletions
diff --git a/spec/doubles/database.rb b/spec/doubles/database.rb new file mode 100644 index 0000000000..cc44596690 --- /dev/null +++ b/spec/doubles/database.rb @@ -0,0 +1,47 @@ +module Fake + class Engine + def connection + @conn ||= Connection.new + end + end + + class Connection + include ActiveRecord::ConnectionAdapters::Quoting + + def columns(table_name, comment) + { "users" => + [ + Column.new("id", :integer), + Column.new("name", :string) + ], + "photos" => + [ + Column.new("id", :integer), + Column.new("user_id", :integer), + Column.new("camera_id", :integer) + ] + }[table_name] + end + + def select_all(*args) + [] + end + + def quote_column_name(column_name) + "`#{column_name}`" + end + + def quote_table_name(table_name) + "`#{table_name}`" + end + end + + class Column + attr_reader :name, :type + + def initialize(name, type) + @name = name + @type = type + end + end +end
\ No newline at end of file diff --git a/spec/doubles/hash.rb b/spec/doubles/hash.rb new file mode 100644 index 0000000000..97d25742cb --- /dev/null +++ b/spec/doubles/hash.rb @@ -0,0 +1,23 @@ +class Hash + def ordered_array + to_a.sort { |(key1, value1), (key2, value2)| key1.hash <=> key2.hash } + end + + def keys + ordered_array.collect(&:first) + end + + def values + ordered_array.collect { |_, v| v } + end + + def each(&block) + ordered_array.each(&block) + end + + def shift + returning to_a.first do |k, v| + delete(k) + end + end +end |