mongo_mapper 0.13.0.beta2 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c064a0c4fc8a69754fd97b1d4d111b47533c5a9f
4
- data.tar.gz: 93299ab0ef2f65d42de3a218315c4575ea6569a9
3
+ metadata.gz: cd7ff4dfcd2b6bce162c7b55ba45e8c00e38a461
4
+ data.tar.gz: 673686bd40a1c139e2045b5397802239cd5d894c
5
5
  SHA512:
6
- metadata.gz: 2552482a4e28cdc65871040dc6425ddf1a6030e9a1896ddb1b4bdd0442ca11c3fd0a01edf3838768fde2102376ddb957af2ce7ae563d07b92ab623ab71d6c2fc
7
- data.tar.gz: e9a796fbf22d16874f9f862ff030e2aa29eb53fadc373cba5affdfd8fafee02fef0a04d33805520dac387fc6c4c9b935689cbf65ade1633152eacc4ffc085432
6
+ metadata.gz: 36943d83bc3ddff1cd8c82d8bddfdde2fa3dfae12800f4c93260480185925e1f34e5a8622b7682b176a318579ee723339286a5c5b99678e9731301e475fb183b
7
+ data.tar.gz: 039605ede2145f91ef107e39dc91d43db57906be355737198fe0a1cff97a2eeb821a9a9460fa977f1a2cc520cdf07c1177994db5ad623e298203e50e6f5838a4
data/README.rdoc CHANGED
@@ -1,7 +1,7 @@
1
1
  = MongoMapper
2
2
 
3
3
  {<img src="https://badge.fury.io/rb/mongo_mapper.png" alt="RubyGem" />}[https://rubygems.org/gems/mongo_mapper]
4
- {<img src="https://travis-ci.org/jnunemaker/mongomapper.png?branch=master" alt="Build Status" />}[https://travis-ci.org/jnunemaker/mongomapper]
4
+ {<img src="https://travis-ci.org/mongomapper/mongomapper.png?branch=master" alt="Build Status" />}[https://travis-ci.org/mongomapper/mongomapper]
5
5
  {<img src="https://coveralls.io/repos/jnunemaker/mongomapper/badge.png" alt="Coverage Status" />}[https://coveralls.io/r/jnunemaker/mongomapper]
6
6
 
7
7
  A Ruby Object Mapper for Mongo.
@@ -23,7 +23,7 @@ MongoMapper is tested against:
23
23
  * MRI 1.8.7
24
24
  * MRI 1.9.3
25
25
  * MRI 2.0.0
26
- * JRuby (1.9)
26
+ * JRuby (Versions with 1.9 compatibility)
27
27
 
28
28
  Additionally, MongoMapper is tested against:
29
29
 
@@ -32,6 +32,10 @@ Additionally, MongoMapper is tested against:
32
32
  * Rails 3.2.x
33
33
  * Rails 4.0.x
34
34
 
35
+ NOTE: Rails 4 support is only in the v0.13.0 beta, which is not currently the default in RubyGems. Use the following line in your gemfile to use the beta:
36
+
37
+ gem 'mongo_mapper', :git => "git://github.com/mongomapper/mongomapper.git", :tag => "v0.13.0.beta2"
38
+
35
39
  == Contributing & Development
36
40
 
37
41
  $ git clone https://github.com/jnunemaker/mongomapper && cd mongomapper
data/examples/keys.rb CHANGED
@@ -24,7 +24,7 @@ john = User.create({
24
24
  :age => 28,
25
25
  :skills => ['ruby', 'mongo', 'javascript'],
26
26
  :links => {"Google" => "http://www.google.com"}
27
- })
27
+ })
28
28
 
29
29
  steve = User.create({
30
30
  :first_name => 'Steve',
@@ -37,4 +37,4 @@ john.friend_ids << steve.id.to_s # will get typecast to ObjectId
37
37
  john.links["Ruby on Rails"] = "http://www.rubyonrails.com"
38
38
  john.save
39
39
 
40
- pp john
40
+ pp john
@@ -6,7 +6,7 @@ MongoMapper.database = 'testing'
6
6
 
7
7
  class User
8
8
  include MongoMapper::Document
9
-
9
+
10
10
  key :name, String
11
11
  key :tags, Array
12
12
  end
data/examples/querying.rb CHANGED
@@ -6,7 +6,7 @@ MongoMapper.database = 'testing'
6
6
 
7
7
  class User
8
8
  include MongoMapper::Document
9
-
9
+
10
10
  key :name, String
11
11
  key :tags, Array
12
12
  end
@@ -32,4 +32,4 @@ User.create(:name => 'Steve', :tags => %w[html5 css3], :age => 27)
32
32
  ].each do |result|
33
33
  pp result
34
34
  puts
35
- end
35
+ end
File without changes
File without changes
File without changes
@@ -7,16 +7,16 @@ module MongoMapper
7
7
  def criteria
8
8
  {type_key_name => proxy_owner.class.name, id_key_name => proxy_owner.id}
9
9
  end
10
-
10
+
11
11
  private
12
12
  def type_key_name
13
13
  "#{options[:as]}_type"
14
14
  end
15
-
15
+
16
16
  def id_key_name
17
17
  "#{options[:as]}_id"
18
18
  end
19
19
  end
20
20
  end
21
21
  end
22
- end
22
+ end
@@ -7,7 +7,7 @@ module MongoMapper
7
7
  def destroy
8
8
  run_callbacks(:destroy) { super }
9
9
  end
10
-
10
+
11
11
  def touch(*)
12
12
  run_callbacks(:touch) { super }
13
13
  end
@@ -5,8 +5,36 @@ module MongoMapper
5
5
  extend ActiveSupport::Concern
6
6
 
7
7
  module ClassMethods
8
- extend Forwardable
9
- def_delegators :collection, :ensure_index, :create_index, :drop_index, :drop_indexes
8
+ def ensure_index(spec, options = {})
9
+ collection.ensure_index dealias_options(spec), options
10
+ end
11
+
12
+ def create_index(spec, options = {})
13
+ collection.create_index dealias_options(spec), options
14
+ end
15
+
16
+ def drop_index(name)
17
+ collection.drop_index name
18
+ end
19
+
20
+ def drop_indexes
21
+ collection.drop_indexes
22
+ end
23
+
24
+ private
25
+
26
+ def dealias_options(options)
27
+ case options
28
+ when Symbol, String
29
+ abbr(options)
30
+ when Hash
31
+ dealias_keys(options)
32
+ when Array
33
+ options.map {|o| dealias_options(o) }
34
+ else
35
+ options
36
+ end
37
+ end
10
38
  end
11
39
  end
12
40
  end
@@ -35,6 +35,24 @@ module MongoMapper
35
35
  @unaliased_keys ||= Hash[*keys.select {|k, v| k == v.name }.flatten(1)]
36
36
  end
37
37
 
38
+ def dealias_keys(hash)
39
+ out = {}
40
+ hash.each do |k, v|
41
+ key = keys[k.to_s]
42
+ name = key && key.abbr || k
43
+ out[name] = k.to_s.match(/^\$/) && v.is_a?(Hash) ? dealias_keys(v) : v
44
+ end
45
+ out
46
+ end
47
+
48
+ def dealias_key(name)
49
+ key = keys[name.to_s]
50
+ key && key.abbr || k
51
+ end
52
+
53
+ alias_method :dealias, :dealias_keys
54
+ alias_method :unalias, :dealias_keys
55
+
38
56
  def key(*args)
39
57
  Key.new(*args).tap do |key|
40
58
  keys[key.name] = key
@@ -47,8 +65,26 @@ module MongoMapper
47
65
  end
48
66
  end
49
67
 
68
+ def remove_key(name)
69
+ if key = keys[name.to_s]
70
+ keys.delete key.name
71
+ keys.delete key.abbr
72
+ remove_method key.name if respond_to? "#{key.name}"
73
+ remove_method "#{key.name}=" if respond_to? "#{key.name}="
74
+ remove_method "#{key.name}?" if respond_to? "#{key.name}?"
75
+ remove_method "#{key.name}_before_type_cast" if respond_to? "#{key.name}_before_type_cast"
76
+ remove_key_in_descendants key.name
77
+ remove_validations_for key.name
78
+ @dynamic_keys = @defined_keys = @unaliased_keys = @object_id_keys = nil
79
+ end
80
+ end
81
+
50
82
  def persisted_name(name)
51
- keys[name.to_s].persisted_name
83
+ if key = keys[name.to_s]
84
+ key.persisted_name
85
+ else
86
+ name
87
+ end
52
88
  end
53
89
  alias_method :abbr, :persisted_name
54
90
 
@@ -149,6 +185,10 @@ module MongoMapper
149
185
  descendants.each { |descendant| descendant.key(*args) }
150
186
  end
151
187
 
188
+ def remove_key_in_descendants(name)
189
+ descendants.each { |descendant| descendant.remove_key(name) }
190
+ end
191
+
152
192
  def create_indexes_for(key)
153
193
  if key.options[:index] && !key.embeddable?
154
194
  warn "[DEPRECATION] :index option when defining key #{key.name.inspect} is deprecated. Put indexes in `db/indexes.rb`"
@@ -200,6 +240,14 @@ module MongoMapper
200
240
  validates_length_of(attribute, length_options)
201
241
  end
202
242
  end
243
+
244
+ def remove_validations_for(name)
245
+ name = name.to_sym
246
+ a_name = [name]
247
+
248
+ _validators.reject!{ |key, _| key == name }
249
+ _validate_callbacks.reject! {|callback| callback.raw_filter.attributes == a_name }
250
+ end
203
251
  end
204
252
 
205
253
  def initialize(attrs={})
@@ -389,6 +437,7 @@ module MongoMapper
389
437
  @_dynamic_attributes[key.name.to_sym] = as_typecast
390
438
  end
391
439
  @attributes = nil
440
+ value
392
441
  end
393
442
 
394
443
  def dynamic_key(name)
@@ -62,7 +62,7 @@ module MongoMapper
62
62
 
63
63
  if @typecast
64
64
  klass = typecast_class # Don't make this lookup on every call
65
- type.from_mongo(value).map! { |v| klass.from_mongo(v) }
65
+ type.from_mongo(value).map { |v| klass.from_mongo(v) }
66
66
  else
67
67
  type.from_mongo(value)
68
68
  end
@@ -71,8 +71,11 @@ module MongoMapper
71
71
  def set(value)
72
72
  # Avoid tap here so we don't have to create a block binding.
73
73
  values = type.to_mongo(value)
74
- values.map! { |v| typecast_class.to_mongo(v) } if @typecast
75
- values
74
+ if @typecast
75
+ values.map { |v| typecast_class.to_mongo(v) }
76
+ else
77
+ values
78
+ end
76
79
  end
77
80
 
78
81
  def default_value
@@ -64,6 +64,18 @@ module MongoMapper
64
64
  modifier_update('$pop', args)
65
65
  end
66
66
 
67
+ def find_and_modify(args)
68
+ args[:query] = dealias_keys(args[:query]) if args.key? :query
69
+ args[:update] = dealias_keys(args[:update]) if args.key? :update
70
+ collection.find_and_modify(args)
71
+ end
72
+
73
+ def upsert(selector, updates, args = {})
74
+ criteria = dealias_keys(selector)
75
+ updates = dealias_keys(updates)
76
+ collection.update(criteria, updates, args)
77
+ end
78
+
67
79
  private
68
80
  def modifier_update(modifier, args)
69
81
  criteria, updates, options = criteria_and_keys_from_args(args)
@@ -84,6 +96,7 @@ module MongoMapper
84
96
  criteria = { :id => criteria }
85
97
  end
86
98
  upgrade_legacy_safe_usage!(options)
99
+ updates = dealias_keys updates
87
100
 
88
101
  [criteria_hash(criteria).to_hash, updates, options]
89
102
  end
@@ -29,6 +29,24 @@ module MongoMapper
29
29
  self
30
30
  end
31
31
 
32
+ def criteria_hash
33
+ @model.dealias_keys super
34
+ end
35
+
36
+ def options_hash
37
+ super.tap do |options|
38
+ case options[:fields]
39
+ when Hash
40
+ options[:fields] = @model.dealias options[:fields]
41
+ when Array
42
+ options[:fields] = options[:fields].map do |field|
43
+ key = keys[field.to_s]
44
+ key && key.abbr || field
45
+ end
46
+ end
47
+ end
48
+ end
49
+
32
50
  def find!(*ids)
33
51
  ids = Array(ids).flatten.uniq
34
52
  raise DocumentNotFound, "Couldn't find without an ID" if ids.size == 0
@@ -40,7 +58,8 @@ module MongoMapper
40
58
  end
41
59
  end
42
60
 
43
- private
61
+ protected
62
+
44
63
  def method_missing(method, *args, &block)
45
64
  return super unless model.respond_to?(method)
46
65
  result = model.send(method, *args, &block)
@@ -10,11 +10,13 @@ module MongoMapper
10
10
 
11
11
  module ClassMethods
12
12
  def inherited(subclass)
13
- key :_type, String unless key?(:_type)
14
13
  super
15
14
  if @collection_name == subclass.instance_variable_get("@collection_name")
15
+ key :_type, String unless key?(:_type)
16
16
  subclass.single_collection_parent = self
17
17
  subclass.instance_variable_set("@single_collection_inherited", true)
18
+ else
19
+ remove_key :_type
18
20
  end
19
21
  end
20
22
 
@@ -40,6 +42,7 @@ module MongoMapper
40
42
 
41
43
  def set_collection_name(name)
42
44
  if single_collection_inherited?
45
+ single_collection_parent.remove_key :_type
43
46
  single_collection_parent = nil
44
47
  @single_collection_inherited = false
45
48
  end
@@ -3,7 +3,7 @@ module MongoMapper
3
3
  module Touch
4
4
  extend ActiveSupport::Concern
5
5
 
6
- def touch(key = :updated_at)
6
+ def touch(key = :updated_at)
7
7
  raise ArgumentError, "Invalid key named #{key}" unless self.key_names.include?(key.to_s)
8
8
  if self.class.embeddable?
9
9
  self.write_attribute(key, Time.now.utc)
@@ -29,11 +29,16 @@ module MongoMapper
29
29
 
30
30
  class UniquenessValidator < ::ActiveModel::EachValidator
31
31
  def initialize(options)
32
+ @klass = options[:class] #only provided in ActiveModel 4.1 and higher
32
33
  super(options.reverse_merge(:case_sensitive => true))
33
34
  end
34
35
 
35
- def setup(klass)
36
- @klass = klass
36
+ if ::ActiveModel::VERSION::MAJOR < 4 ||
37
+ (::ActiveModel::VERSION::MAJOR == 4 && ::ActiveModel::VERSION::MINOR == 0)
38
+
39
+ def setup(klass)
40
+ @klass = klass
41
+ end
37
42
  end
38
43
 
39
44
  def validate_each(record, attribute, value)
@@ -2,12 +2,32 @@ require "mongo_mapper"
2
2
  require "rails"
3
3
  require "active_model/railtie"
4
4
 
5
+ # Need the action_dispatch railtie to have action_dispatch.rescu_responses initialized correctly
6
+ require "action_dispatch/railtie"
7
+
5
8
  module MongoMapper
6
9
  # = MongoMapper Railtie
7
10
  class Railtie < Rails::Railtie
8
11
 
9
12
  config.mongo_mapper = ActiveSupport::OrderedOptions.new
10
13
 
14
+ # Rescue responses similar to ActiveRecord.
15
+ # For rails 3.0 and 3.1
16
+ if Rails.version < "3.2"
17
+ ActionDispatch::ShowExceptions.rescue_responses['MongoMapper::DocumentNotFound'] = :not_found,
18
+ ActionDispatch::ShowExceptions.rescue_responses['MongoMapper::InvalidKey'] = :unprocessable_entity,
19
+ ActionDispatch::ShowExceptions.rescue_responses['MongoMapper::InvalidScheme'] = :unprocessable_entity,
20
+ ActionDispatch::ShowExceptions.rescue_responses['MongoMapper::NotSupported'] = :unprocessable_entity
21
+ else
22
+ # For rails 3.2 and 4.0
23
+ config.action_dispatch.rescue_responses.merge!(
24
+ 'MongoMapper::DocumentNotFound' => :not_found,
25
+ 'MongoMapper::InvalidKey' => :unprocessable_entity,
26
+ 'MongoMapper::InvalidScheme' => :unprocessable_entity,
27
+ 'MongoMapper::NotSupported' => :unprocessable_entity
28
+ )
29
+ end
30
+
11
31
  rake_tasks do
12
32
  load "mongo_mapper/railtie/database.rake"
13
33
  end
@@ -2,7 +2,7 @@ namespace :db do
2
2
  unless Rake::Task.task_defined?("db:drop")
3
3
  desc 'Drops all the collections for the database for the current Rails.env'
4
4
  task :drop => :environment do
5
- MongoMapper.database.collections.select {|c| c.name !~ /system/ }.each(&:drop)
5
+ MongoMapper.database.collections.select {|c| c.name !~ /\Asystem\./ }.each(&:drop)
6
6
  end
7
7
  end
8
8
 
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module MongoMapper
3
- Version = '0.13.0.beta2'
3
+ Version = '0.13.0'
4
4
  end
@@ -307,7 +307,7 @@ describe "EmbeddedDocument" do
307
307
 
308
308
  it "should update attributes with symbol keys" do
309
309
  person = @klass.create(:pets => [@pet_klass.new(:name => 'Rasmus', :flag => true)])
310
- person.update_attributes!({pets: [:name => "sparky", :flag => "false"]})
310
+ person.update_attributes!({:pets => [:name => "sparky", :flag => "false"]})
311
311
  person.reload
312
312
  person.pets.first.name.should == "sparky"
313
313
  person.pets.first.flag.should be_false
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe "Indexing" do
4
4
  before do
5
5
  @document = Doc do
6
- key :first_name, String
6
+ key :first_name, String, :alias => :fn
7
7
  key :last_name, String
8
8
  key :age, Integer
9
9
  key :date, Date
@@ -11,22 +11,46 @@ describe "Indexing" do
11
11
  end
12
12
  after { drop_indexes(@document) }
13
13
 
14
- [:create_index, :ensure_index, :drop_index, :drop_indexes].each do |method|
15
- it "should delegate #{method} to collection" do
14
+ context "against a known collection" do
15
+ before do
16
16
  @document.stub(:collection).and_return(double(:name => :foo))
17
- @document.collection.should_receive(method).with(:arg)
18
- @document.send(method, :arg)
17
+ end
18
+ [:create_index, :ensure_index].each do |method|
19
+ it "should delegate #{method} to collection" do
20
+ @document.collection.should_receive(method).with(:arg, {})
21
+ @document.send(method, :arg)
22
+ end
23
+ end
24
+
25
+ it "should delegate drop_index to collection" do
26
+ @document.collection.should_receive(:drop_index).with(:arg)
27
+ @document.drop_index(:arg)
28
+ end
29
+
30
+ it "should delegate drop_indexes to collection" do
31
+ @document.collection.should_receive(:drop_indexes)
32
+ @document.drop_indexes
19
33
  end
20
34
  end
21
35
 
22
- it "should allow creating index for a key" do
36
+ it "should allow creating index for an aliased key" do
23
37
  @document.ensure_index :first_name
24
- @document.should have_index('first_name_1')
38
+ @document.should have_index('fn_1')
39
+ end
40
+
41
+ it "should allow creating index for an aliased key without using the alias" do
42
+ @document.ensure_index :fn
43
+ @document.should have_index('fn_1')
44
+ end
45
+
46
+ it "should allow creating index for an unaliased key" do
47
+ @document.ensure_index :last_name
48
+ @document.should have_index('last_name_1')
25
49
  end
26
50
 
27
51
  it "should allow creating unique index for a key" do
28
52
  @document.ensure_index :first_name, :unique => true
29
- @document.should have_index('first_name_1')
53
+ @document.should have_index('fn_1')
30
54
  end
31
55
 
32
56
  it "should allow creating index on multiple keys" do
@@ -37,7 +61,7 @@ describe "Indexing" do
37
61
  # the values of the indexes to make sure the index creation was successful
38
62
  @document.collection.index_information.detect do |index|
39
63
  keys = index[0]
40
- keys.include?('first_name_1') && keys.include?('last_name_-1')
64
+ keys.include?('fn_1') && keys.include?('last_name_-1')
41
65
  end.should_not be_nil
42
66
  end
43
67
 
@@ -24,6 +24,41 @@ describe "Keys" do
24
24
  instance.get_foo.should == instance.foo
25
25
  end
26
26
 
27
+ it "should return the value when set using send with the writer method" do
28
+ doc = Doc do
29
+ key :foo, String
30
+ end
31
+
32
+ instance = doc.new(:foo => 'bar')
33
+ instance.send("foo=", 'baz').should == 'baz'
34
+ instance.foo.should == 'baz'
35
+ end
36
+
37
+ context "when persisting an typecasted array" do
38
+ TypecastedKeyModel = Doc do
39
+ key :people, Array, :typecast => "Person"
40
+ end
41
+
42
+ Person = Struct.new(:name) do
43
+ def self.to_mongo(value)
44
+ value.name
45
+ end
46
+
47
+ def self.from_mongo(value)
48
+ Person.new value
49
+ end
50
+ end
51
+
52
+ it "should not mutate the model's state" do
53
+ person = Person.new "Bob"
54
+ doc = TypecastedKeyModel.new(:people => [person])
55
+
56
+ doc.save
57
+
58
+ doc.people.should == [person]
59
+ end
60
+ end
61
+
27
62
  it "should not bomb if a key is written before Keys#initialize gets to get called" do
28
63
  doc = Class.new do
29
64
  include MongoMapper::Document
@@ -159,8 +194,35 @@ describe "Keys" do
159
194
  end
160
195
  end
161
196
 
162
- it "should permit querying via aliases" do
163
- AliasedKeyModel.where(AliasedKeyModel.abbr(:f) => "whee!").first.foo.should == "whee!"
197
+ it "should permit querying via direct field names" do
198
+ AliasedKeyModel.where(AliasedKeyModel.abbr(:foo) => "whee!").first.foo.should == "whee!"
199
+ end
200
+
201
+ it "should permit querying via direct field names" do
202
+ AliasedKeyModel.where(:foo => "whee!").criteria_hash.keys.should == ["f"]
203
+ AliasedKeyModel.where(:foo => "whee!").first.foo.should == "whee!"
204
+ end
205
+
206
+ it "should permit filtering via aliases" do
207
+ AliasedKeyModel.where(:foo => "whee!").fields(:foo).first.foo.should == "whee!"
208
+ end
209
+
210
+ it "should permit dealiasing of atomic operations" do
211
+ m = AliasedKeyModel.first
212
+ m.set(:foo => 1)
213
+ AliasedKeyModel.collection.find_one["f"].should == 1
214
+ AliasedKeyModel.collection.find_one["foo"].should be_nil
215
+ end
216
+
217
+ it "should permit dealiasing of update operations" do
218
+ m = AliasedKeyModel.first
219
+ m.update_attributes(:foo => 1)
220
+ AliasedKeyModel.collection.find_one["f"].should == 1
221
+ AliasedKeyModel.collection.find_one["foo"].should be_nil
222
+ end
223
+
224
+ it "should not break when unaliasing non-keys" do
225
+ AliasedKeyModel.where(:badkey => "whee!").criteria_hash.keys.should == [:badkey]
164
226
  end
165
227
 
166
228
  it "should serialize to JSON with full keys" do
@@ -88,12 +88,47 @@ describe "Single collection inheritance (document)" do
88
88
  DocDaughter.collection.name.should == DocParent.collection.name
89
89
  end
90
90
 
91
- it "should negate SCI if the subclass changes its collection" do
92
- klass = Class.new(DocParent) do
93
- set_collection_name "foobars"
91
+ context "if the subclass changes its collection" do
92
+ before do
93
+ class ::DocSCIOrphan < ::DocParent
94
+ set_collection_name "foobars"
95
+ end
96
+ end
97
+
98
+ after do
99
+ Object.send :remove_const, 'DocSCIOrphan' if defined?(::DocSCIOrphan)
100
+ end
101
+
102
+ it "should negate SCI" do
103
+ DocSCIOrphan.collection.name.should == "foobars"
104
+ DocSCIOrphan.should_not be_single_collection_inherited
105
+ end
106
+
107
+ it "should remove the _type key" do
108
+ DocParent.keys.should_not have_key "_type"
109
+ DocSCIOrphan.keys.should_not have_key "_type"
110
+ end
111
+
112
+ context "and then is subclassed again" do
113
+ before do
114
+ class ::DocSCIOrphanChild < ::DocSCIOrphan
115
+ end
116
+ end
117
+
118
+ after do
119
+ Object.send :remove_const, 'DocSCIOrphanChild' if defined?(::DocSCIOrphanChild)
120
+ end
121
+
122
+ it "should reinstate SCI" do
123
+ DocSCIOrphan.should_not be_single_collection_inherited
124
+ DocSCIOrphanChild.should be_single_collection_inherited
125
+ end
126
+
127
+ it "should have the _type key" do
128
+ DocSCIOrphan.keys.should have_key "_type"
129
+ DocSCIOrphanChild.keys.should have_key "_type"
130
+ end
94
131
  end
95
- klass.collection.name.should == "foobars"
96
- klass.should_not be_single_collection_inherited
97
132
  end
98
133
 
99
134
  it "should know single_collection_parent" do
@@ -16,7 +16,7 @@ describe "Touch" do
16
16
  end
17
17
 
18
18
  doc.reload
19
- doc.updated_at.should_not == old_updated_at
19
+ doc.updated_at.should_not == old_updated_at
20
20
  end
21
21
  end
22
22
 
@@ -79,7 +79,7 @@ describe "Touch" do
79
79
 
80
80
  @post.reload.updated_at.should_not == orig_updated_at
81
81
  end
82
-
82
+
83
83
  it "should when the child is updated" do
84
84
  @comment.save
85
85
  old_updated_at = @post.updated_at
@@ -88,7 +88,7 @@ describe "Touch" do
88
88
  end
89
89
  @post.reload.updated_at.should_not == old_updated_at
90
90
  end
91
-
91
+
92
92
  it "should when the child is touched" do
93
93
  @comment.save
94
94
  old_updated_at = @post.updated_at
@@ -117,9 +117,9 @@ describe "Touch" do
117
117
  Timecop.freeze(Time.now + 1.day) do
118
118
  comment.save
119
119
  end
120
-
120
+
121
121
  post.reload.updated_at.should == post.created_at
122
122
  end
123
123
  end
124
124
  end
125
- end
125
+ end
@@ -15,7 +15,7 @@ describe "Inspect" do
15
15
  it "should print out non-nil attributes in alpha sorted order" do
16
16
  @doc.inspect.should =~ /_id:.*, age: 29, name: "John"/
17
17
  end
18
-
18
+
19
19
  it "should print out all attributes when (optional) include_super argument is true" do
20
20
  @doc.inspect(true).should =~ /_id:.*, age: 29, email: nil, name: "John"/
21
21
  end
@@ -23,7 +23,7 @@ describe "Inspect" do
23
23
  it "should include class name" do
24
24
  @doc.inspect.should =~ /^#<User/
25
25
  end
26
-
26
+
27
27
  it "should include embedded documents" do
28
28
  klass = Doc()
29
29
  pets = EDoc()
@@ -33,7 +33,7 @@ describe "Inspect" do
33
33
  doc = klass.new(:pets => [{:name => "Kitten"}])
34
34
  doc.inspect.should =~ /_id:.*, pets: \[.*_id.*, name: "Kitten".*\]/
35
35
  end
36
-
36
+
37
37
  it "should include embedded document" do
38
38
  klass = Doc()
39
39
  pet = EDoc()
@@ -44,4 +44,4 @@ describe "Inspect" do
44
44
  doc.inspect.should =~ /_id:.*, pet: .*_id.*, name: "Kitten".*/
45
45
  end
46
46
  end
47
- end
47
+ end
@@ -12,10 +12,8 @@ describe MongoMapper::Generators::ModelGenerator do
12
12
  end
13
13
 
14
14
  it 'help shows MongoMapper options' do
15
- pending "Rails 4 breaks Kernel#capture on JRuby", :if => (Rails::VERSION::MAJOR >= 4 && RUBY_PLATFORM == "java") do
16
- content = run_generator ['--help']
17
- assert_match(/rails generate mongo_mapper:model/, content)
18
- end
15
+ content = run_generator ['--help']
16
+ assert_match(/rails generate mongo_mapper:model/, content)
19
17
  end
20
18
 
21
19
  it 'model are properly created' do
metadata CHANGED
@@ -1,71 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo_mapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0.beta2
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-07 00:00:00.000000000 Z
11
+ date: 2014-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
15
- requirement: !ruby/object:Gem::Requirement
15
+ version_requirements: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.0.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
20
+ requirement: !ruby/object:Gem::Requirement
23
21
  requirements:
24
22
  - - '>='
25
23
  - !ruby/object:Gem::Version
26
24
  version: 3.0.0
25
+ prerelease: false
26
+ type: :runtime
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
- requirement: !ruby/object:Gem::Requirement
29
+ version_requirements: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
34
+ requirement: !ruby/object:Gem::Requirement
37
35
  requirements:
38
36
  - - '>='
39
37
  - !ruby/object:Gem::Version
40
38
  version: '3.0'
39
+ prerelease: false
40
+ type: :runtime
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: plucky
43
- requirement: !ruby/object:Gem::Requirement
43
+ version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.6.5
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
51
49
  requirements:
52
50
  - - ~>
53
51
  - !ruby/object:Gem::Version
54
52
  version: 0.6.5
53
+ prerelease: false
54
+ type: :runtime
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: mongo
57
- requirement: !ruby/object:Gem::Requirement
57
+ version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.8'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
62
+ requirement: !ruby/object:Gem::Requirement
65
63
  requirements:
66
64
  - - ~>
67
65
  - !ruby/object:Gem::Version
68
66
  version: '1.8'
67
+ prerelease: false
68
+ type: :runtime
69
69
  description: MongoMapper is a Object-Document Mapper for Ruby and Rails
70
70
  email:
71
71
  - nunemaker@gmail.com
@@ -74,189 +74,191 @@ executables:
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - LICENSE
78
+ - README.rdoc
79
+ - UPGRADES
77
80
  - bin/mmconsole
78
- - examples/identity_map.rb
81
+ - examples/attr_accessible.rb
82
+ - examples/attr_protected.rb
83
+ - examples/cache_key.rb
79
84
  - examples/custom_types.rb
80
- - examples/modifiers/set.rb
85
+ - examples/identity_map.rb
86
+ - examples/identity_map/automatic.rb
81
87
  - examples/keys.rb
82
- - examples/cache_key.rb
83
- - examples/scopes.rb
88
+ - examples/modifiers/set.rb
84
89
  - examples/plugins.rb
85
- - examples/attr_protected.rb
86
90
  - examples/querying.rb
87
- - examples/identity_map/automatic.rb
88
- - examples/validating/embedded_docs.rb
89
91
  - examples/safe.rb
90
- - examples/attr_accessible.rb
92
+ - examples/scopes.rb
93
+ - examples/validating/embedded_docs.rb
91
94
  - lib/mongo_mapper.rb
92
- - lib/rails/generators/mongo_mapper/model/model_generator.rb
93
- - lib/rails/generators/mongo_mapper/model/templates/model.rb
94
- - lib/rails/generators/mongo_mapper/config/config_generator.rb
95
- - lib/rails/generators/mongo_mapper/config/templates/mongo.yml
96
- - lib/mongo_mapper/railtie.rb
97
- - lib/mongo_mapper/embedded_document.rb
98
95
  - lib/mongo_mapper/connection.rb
99
- - lib/mongo_mapper/utils.rb
100
- - lib/mongo_mapper/plugins/identity_map.rb
101
- - lib/mongo_mapper/plugins/touch.rb
102
- - lib/mongo_mapper/plugins/rails.rb
103
- - lib/mongo_mapper/plugins/modifiers.rb
104
- - lib/mongo_mapper/plugins/embedded_document.rb
105
- - lib/mongo_mapper/plugins/inspect.rb
106
- - lib/mongo_mapper/plugins/keys.rb
107
- - lib/mongo_mapper/plugins/protected.rb
108
- - lib/mongo_mapper/plugins/persistence.rb
109
- - lib/mongo_mapper/plugins/associations/many_embedded_proxy.rb
96
+ - lib/mongo_mapper/connections/10gen.rb
97
+ - lib/mongo_mapper/connections/moped.rb
98
+ - lib/mongo_mapper/document.rb
99
+ - lib/mongo_mapper/embedded_document.rb
100
+ - lib/mongo_mapper/exceptions.rb
101
+ - lib/mongo_mapper/extensions/array.rb
102
+ - lib/mongo_mapper/extensions/binary.rb
103
+ - lib/mongo_mapper/extensions/boolean.rb
104
+ - lib/mongo_mapper/extensions/date.rb
105
+ - lib/mongo_mapper/extensions/float.rb
106
+ - lib/mongo_mapper/extensions/hash.rb
107
+ - lib/mongo_mapper/extensions/integer.rb
108
+ - lib/mongo_mapper/extensions/kernel.rb
109
+ - lib/mongo_mapper/extensions/nil_class.rb
110
+ - lib/mongo_mapper/extensions/object.rb
111
+ - lib/mongo_mapper/extensions/object_id.rb
112
+ - lib/mongo_mapper/extensions/ordered_hash.rb
113
+ - lib/mongo_mapper/extensions/set.rb
114
+ - lib/mongo_mapper/extensions/string.rb
115
+ - lib/mongo_mapper/extensions/time.rb
116
+ - lib/mongo_mapper/locale/en.yml
117
+ - lib/mongo_mapper/middleware/identity_map.rb
118
+ - lib/mongo_mapper/plugins.rb
119
+ - lib/mongo_mapper/plugins/accessible.rb
120
+ - lib/mongo_mapper/plugins/active_model.rb
121
+ - lib/mongo_mapper/plugins/associations.rb
122
+ - lib/mongo_mapper/plugins/associations/base.rb
123
+ - lib/mongo_mapper/plugins/associations/belongs_to_association.rb
110
124
  - lib/mongo_mapper/plugins/associations/belongs_to_polymorphic_proxy.rb
111
- - lib/mongo_mapper/plugins/associations/proxy.rb
112
- - lib/mongo_mapper/plugins/associations/many_association.rb
113
- - lib/mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy.rb
114
- - lib/mongo_mapper/plugins/associations/one_proxy.rb
115
- - lib/mongo_mapper/plugins/associations/one_as_proxy.rb
116
- - lib/mongo_mapper/plugins/associations/many_documents_proxy.rb
117
- - lib/mongo_mapper/plugins/associations/one_embedded_proxy.rb
125
+ - lib/mongo_mapper/plugins/associations/belongs_to_proxy.rb
126
+ - lib/mongo_mapper/plugins/associations/collection.rb
118
127
  - lib/mongo_mapper/plugins/associations/embedded_collection.rb
119
- - lib/mongo_mapper/plugins/associations/base.rb
120
128
  - lib/mongo_mapper/plugins/associations/in_array_proxy.rb
121
- - lib/mongo_mapper/plugins/associations/single_association.rb
122
- - lib/mongo_mapper/plugins/associations/many_polymorphic_proxy.rb
123
- - lib/mongo_mapper/plugins/associations/collection.rb
124
- - lib/mongo_mapper/plugins/associations/belongs_to_association.rb
129
+ - lib/mongo_mapper/plugins/associations/many_association.rb
125
130
  - lib/mongo_mapper/plugins/associations/many_documents_as_proxy.rb
126
- - lib/mongo_mapper/plugins/associations/belongs_to_proxy.rb
131
+ - lib/mongo_mapper/plugins/associations/many_documents_proxy.rb
132
+ - lib/mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy.rb
133
+ - lib/mongo_mapper/plugins/associations/many_embedded_proxy.rb
134
+ - lib/mongo_mapper/plugins/associations/many_polymorphic_proxy.rb
135
+ - lib/mongo_mapper/plugins/associations/one_as_proxy.rb
127
136
  - lib/mongo_mapper/plugins/associations/one_association.rb
128
137
  - lib/mongo_mapper/plugins/associations/one_embedded_polymorphic_proxy.rb
138
+ - lib/mongo_mapper/plugins/associations/one_embedded_proxy.rb
139
+ - lib/mongo_mapper/plugins/associations/one_proxy.rb
140
+ - lib/mongo_mapper/plugins/associations/proxy.rb
141
+ - lib/mongo_mapper/plugins/associations/single_association.rb
142
+ - lib/mongo_mapper/plugins/caching.rb
143
+ - lib/mongo_mapper/plugins/callbacks.rb
144
+ - lib/mongo_mapper/plugins/clone.rb
145
+ - lib/mongo_mapper/plugins/dirty.rb
146
+ - lib/mongo_mapper/plugins/document.rb
147
+ - lib/mongo_mapper/plugins/dumpable.rb
129
148
  - lib/mongo_mapper/plugins/dynamic_querying.rb
149
+ - lib/mongo_mapper/plugins/dynamic_querying/dynamic_finder.rb
150
+ - lib/mongo_mapper/plugins/embedded_callbacks.rb
151
+ - lib/mongo_mapper/plugins/embedded_document.rb
130
152
  - lib/mongo_mapper/plugins/equality.rb
153
+ - lib/mongo_mapper/plugins/identity_map.rb
131
154
  - lib/mongo_mapper/plugins/indexes.rb
132
- - lib/mongo_mapper/plugins/dumpable.rb
133
- - lib/mongo_mapper/plugins/scopes.rb
155
+ - lib/mongo_mapper/plugins/inspect.rb
156
+ - lib/mongo_mapper/plugins/keys.rb
157
+ - lib/mongo_mapper/plugins/keys/key.rb
134
158
  - lib/mongo_mapper/plugins/logger.rb
159
+ - lib/mongo_mapper/plugins/modifiers.rb
160
+ - lib/mongo_mapper/plugins/pagination.rb
161
+ - lib/mongo_mapper/plugins/persistence.rb
162
+ - lib/mongo_mapper/plugins/protected.rb
163
+ - lib/mongo_mapper/plugins/querying.rb
135
164
  - lib/mongo_mapper/plugins/querying/decorated_plucky_query.rb
136
- - lib/mongo_mapper/plugins/userstamps.rb
137
- - lib/mongo_mapper/plugins/accessible.rb
138
- - lib/mongo_mapper/plugins/sci.rb
139
- - lib/mongo_mapper/plugins/dynamic_querying/dynamic_finder.rb
140
- - lib/mongo_mapper/plugins/clone.rb
141
- - lib/mongo_mapper/plugins/embedded_callbacks.rb
165
+ - lib/mongo_mapper/plugins/rails.rb
142
166
  - lib/mongo_mapper/plugins/rails/active_record_association_adapter.rb
143
- - lib/mongo_mapper/plugins/keys/key.rb
144
- - lib/mongo_mapper/plugins/querying.rb
145
- - lib/mongo_mapper/plugins/serialization.rb
146
- - lib/mongo_mapper/plugins/dirty.rb
147
- - lib/mongo_mapper/plugins/associations.rb
148
- - lib/mongo_mapper/plugins/callbacks.rb
149
- - lib/mongo_mapper/plugins/pagination.rb
150
- - lib/mongo_mapper/plugins/document.rb
151
- - lib/mongo_mapper/plugins/validations.rb
152
167
  - lib/mongo_mapper/plugins/safe.rb
168
+ - lib/mongo_mapper/plugins/sci.rb
169
+ - lib/mongo_mapper/plugins/scopes.rb
170
+ - lib/mongo_mapper/plugins/serialization.rb
153
171
  - lib/mongo_mapper/plugins/timestamps.rb
154
- - lib/mongo_mapper/plugins/active_model.rb
155
- - lib/mongo_mapper/plugins/caching.rb
156
- - lib/mongo_mapper/extensions/object_id.rb
157
- - lib/mongo_mapper/extensions/object.rb
158
- - lib/mongo_mapper/extensions/integer.rb
159
- - lib/mongo_mapper/extensions/time.rb
160
- - lib/mongo_mapper/extensions/hash.rb
161
- - lib/mongo_mapper/extensions/boolean.rb
162
- - lib/mongo_mapper/extensions/array.rb
163
- - lib/mongo_mapper/extensions/nil_class.rb
164
- - lib/mongo_mapper/extensions/ordered_hash.rb
165
- - lib/mongo_mapper/extensions/kernel.rb
166
- - lib/mongo_mapper/extensions/string.rb
167
- - lib/mongo_mapper/extensions/set.rb
168
- - lib/mongo_mapper/extensions/float.rb
169
- - lib/mongo_mapper/extensions/binary.rb
170
- - lib/mongo_mapper/extensions/date.rb
171
- - lib/mongo_mapper/version.rb
172
- - lib/mongo_mapper/plugins.rb
173
- - lib/mongo_mapper/middleware/identity_map.rb
172
+ - lib/mongo_mapper/plugins/touch.rb
173
+ - lib/mongo_mapper/plugins/userstamps.rb
174
+ - lib/mongo_mapper/plugins/validations.rb
175
+ - lib/mongo_mapper/railtie.rb
174
176
  - lib/mongo_mapper/railtie/database.rake
175
- - lib/mongo_mapper/exceptions.rb
176
- - lib/mongo_mapper/locale/en.yml
177
- - lib/mongo_mapper/document.rb
178
177
  - lib/mongo_mapper/translation.rb
179
- - spec/functional/caching_spec.rb
180
- - spec/functional/rails_spec.rb
181
- - spec/functional/dirty_spec.rb
182
- - spec/functional/sci_spec.rb
183
- - spec/functional/associations/in_array_proxy_spec.rb
184
- - spec/functional/associations/many_polymorphic_proxy_spec.rb
185
- - spec/functional/associations/one_as_proxy_spec.rb
178
+ - lib/mongo_mapper/utils.rb
179
+ - lib/mongo_mapper/version.rb
180
+ - lib/rails/generators/mongo_mapper/config/config_generator.rb
181
+ - lib/rails/generators/mongo_mapper/config/templates/mongo.yml
182
+ - lib/rails/generators/mongo_mapper/model/model_generator.rb
183
+ - lib/rails/generators/mongo_mapper/model/templates/model.rb
184
+ - spec/functional/accessible_spec.rb
185
+ - spec/functional/associations/belongs_to_polymorphic_proxy_spec.rb
186
186
  - spec/functional/associations/belongs_to_proxy_spec.rb
187
+ - spec/functional/associations/in_array_proxy_spec.rb
187
188
  - spec/functional/associations/many_documents_as_proxy_spec.rb
188
- - spec/functional/associations/many_embedded_proxy_spec.rb
189
189
  - spec/functional/associations/many_documents_proxy_spec.rb
190
- - spec/functional/associations/one_proxy_spec.rb
191
- - spec/functional/associations/one_embedded_proxy_spec.rb
192
190
  - spec/functional/associations/many_embedded_polymorphic_proxy_spec.rb
193
- - spec/functional/associations/belongs_to_polymorphic_proxy_spec.rb
191
+ - spec/functional/associations/many_embedded_proxy_spec.rb
192
+ - spec/functional/associations/many_polymorphic_proxy_spec.rb
193
+ - spec/functional/associations/one_as_proxy_spec.rb
194
194
  - spec/functional/associations/one_embedded_polymorphic_proxy_spec.rb
195
- - spec/functional/indexes_spec.rb
196
- - spec/functional/userstamps_spec.rb
197
- - spec/functional/touch_spec.rb
195
+ - spec/functional/associations/one_embedded_proxy_spec.rb
196
+ - spec/functional/associations/one_proxy_spec.rb
197
+ - spec/functional/associations_spec.rb
198
+ - spec/functional/binary_spec.rb
199
+ - spec/functional/caching_spec.rb
200
+ - spec/functional/callbacks_spec.rb
201
+ - spec/functional/dirty_spec.rb
202
+ - spec/functional/document_spec.rb
198
203
  - spec/functional/dumpable_spec.rb
199
- - spec/functional/protected_spec.rb
200
- - spec/functional/modifiers_spec.rb
201
- - spec/functional/pagination_spec.rb
202
- - spec/functional/validations_spec.rb
203
204
  - spec/functional/dynamic_querying_spec.rb
205
+ - spec/functional/embedded_document_spec.rb
204
206
  - spec/functional/equality_spec.rb
205
- - spec/functional/callbacks_spec.rb
206
207
  - spec/functional/extensions_spec.rb
208
+ - spec/functional/identity_map_spec.rb
209
+ - spec/functional/indexes_spec.rb
210
+ - spec/functional/keys_spec.rb
211
+ - spec/functional/logger_spec.rb
212
+ - spec/functional/modifiers_spec.rb
213
+ - spec/functional/pagination_spec.rb
214
+ - spec/functional/protected_spec.rb
207
215
  - spec/functional/querying_spec.rb
216
+ - spec/functional/rails_spec.rb
217
+ - spec/functional/safe_spec.rb
218
+ - spec/functional/sci_spec.rb
208
219
  - spec/functional/scopes_spec.rb
209
- - spec/functional/logger_spec.rb
210
- - spec/functional/document_spec.rb
211
220
  - spec/functional/timestamps_spec.rb
212
- - spec/functional/embedded_document_spec.rb
213
- - spec/functional/binary_spec.rb
214
- - spec/functional/keys_spec.rb
215
- - spec/functional/associations_spec.rb
216
- - spec/functional/accessible_spec.rb
217
- - spec/functional/identity_map_spec.rb
218
- - spec/functional/safe_spec.rb
219
- - spec/unit/rails_compatibility_spec.rb
220
- - spec/unit/rails_spec.rb
221
- - spec/unit/key_spec.rb
222
- - spec/unit/clone_spec.rb
223
- - spec/unit/associations/many_association_spec.rb
224
- - spec/unit/associations/one_association_spec.rb
221
+ - spec/functional/touch_spec.rb
222
+ - spec/functional/userstamps_spec.rb
223
+ - spec/functional/validations_spec.rb
224
+ - spec/spec_helper.rb
225
+ - spec/support/matchers.rb
226
+ - spec/support/models.rb
225
227
  - spec/unit/associations/base_spec.rb
226
228
  - spec/unit/associations/belongs_to_association_spec.rb
229
+ - spec/unit/associations/many_association_spec.rb
230
+ - spec/unit/associations/one_association_spec.rb
227
231
  - spec/unit/associations/proxy_spec.rb
228
- - spec/unit/model_generator_spec.rb
229
- - spec/unit/serialization_spec.rb
230
- - spec/unit/plugins_spec.rb
231
- - spec/unit/pagination_spec.rb
232
- - spec/unit/validations_spec.rb
233
- - spec/unit/equality_spec.rb
232
+ - spec/unit/clone_spec.rb
234
233
  - spec/unit/config_generator_spec.rb
235
- - spec/unit/extensions_spec.rb
236
- - spec/unit/rails_reflect_on_association_spec.rb
237
- - spec/unit/exceptions_spec.rb
238
- - spec/unit/identity_map_middleware_spec.rb
239
- - spec/unit/translation_spec.rb
240
- - spec/unit/time_zones_spec.rb
241
234
  - spec/unit/document_spec.rb
242
- - spec/unit/mongo_mapper_spec.rb
235
+ - spec/unit/dynamic_finder_spec.rb
243
236
  - spec/unit/embedded_document_spec.rb
237
+ - spec/unit/equality_spec.rb
238
+ - spec/unit/exceptions_spec.rb
239
+ - spec/unit/extensions_spec.rb
240
+ - spec/unit/identity_map_middleware_spec.rb
244
241
  - spec/unit/inspect_spec.rb
242
+ - spec/unit/key_spec.rb
245
243
  - spec/unit/keys_spec.rb
244
+ - spec/unit/model_generator_spec.rb
245
+ - spec/unit/mongo_mapper_spec.rb
246
+ - spec/unit/pagination_spec.rb
247
+ - spec/unit/plugins_spec.rb
248
+ - spec/unit/rails_compatibility_spec.rb
249
+ - spec/unit/rails_reflect_on_association_spec.rb
250
+ - spec/unit/rails_spec.rb
251
+ - spec/unit/serialization_spec.rb
246
252
  - spec/unit/serializers/json_serializer_spec.rb
247
253
  - spec/unit/serializers/xml_serializer_spec.rb
248
- - spec/unit/dynamic_finder_spec.rb
249
- - spec/spec_helper.rb
250
- - spec/support/matchers.rb
251
- - spec/support/models.rb
252
- - LICENSE
253
- - UPGRADES
254
- - README.rdoc
254
+ - spec/unit/time_zones_spec.rb
255
+ - spec/unit/translation_spec.rb
256
+ - spec/unit/validations_spec.rb
255
257
  homepage: http://mongomapper.com
256
258
  licenses:
257
259
  - MIT
258
260
  metadata: {}
259
- post_install_message:
261
+ post_install_message:
260
262
  rdoc_options: []
261
263
  require_paths:
262
264
  - lib
@@ -267,13 +269,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
267
269
  version: '0'
268
270
  required_rubygems_version: !ruby/object:Gem::Requirement
269
271
  requirements:
270
- - - '>'
272
+ - - '>='
271
273
  - !ruby/object:Gem::Version
272
- version: 1.3.1
274
+ version: '0'
273
275
  requirements: []
274
- rubyforge_project:
275
- rubygems_version: 2.0.4
276
- signing_key:
276
+ rubyforge_project:
277
+ rubygems_version: 2.2.2
278
+ signing_key:
277
279
  specification_version: 4
278
280
  summary: A Ruby Object Mapper for Mongo
279
281
  test_files: []