mongo_mapper 0.15.3 → 0.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +17 -6
- data/lib/mongo_mapper.rb +17 -18
- data/lib/mongo_mapper/extensions/array.rb +1 -1
- data/lib/mongo_mapper/extensions/binary.rb +1 -1
- data/lib/mongo_mapper/extensions/date.rb +1 -1
- data/lib/mongo_mapper/extensions/float.rb +1 -1
- data/lib/mongo_mapper/extensions/hash.rb +1 -1
- data/lib/mongo_mapper/extensions/nil_class.rb +2 -2
- data/lib/mongo_mapper/extensions/object.rb +1 -1
- data/lib/mongo_mapper/extensions/object_id.rb +1 -1
- data/lib/mongo_mapper/extensions/set.rb +1 -1
- data/lib/mongo_mapper/extensions/string.rb +1 -1
- data/lib/mongo_mapper/plugins/associations/many_association.rb +2 -3
- data/lib/mongo_mapper/plugins/associations/{belongs_to_polymorphic_proxy.rb → proxy/belongs_to_polymorphic_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{belongs_to_proxy.rb → proxy/belongs_to_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/proxy/collection.rb +55 -0
- data/lib/mongo_mapper/plugins/associations/{embedded_collection.rb → proxy/embedded_collection.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{in_array_proxy.rb → proxy/in_array_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{in_foreign_array_proxy.rb → proxy/in_foreign_array_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{many_documents_as_proxy.rb → proxy/many_documents_as_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{many_documents_proxy.rb → proxy/many_documents_proxy.rb} +0 -4
- data/lib/mongo_mapper/plugins/associations/{many_embedded_polymorphic_proxy.rb → proxy/many_embedded_polymorphic_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{many_embedded_proxy.rb → proxy/many_embedded_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{many_polymorphic_proxy.rb → proxy/many_polymorphic_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{one_as_proxy.rb → proxy/one_as_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{one_embedded_polymorphic_proxy.rb → proxy/one_embedded_polymorphic_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{one_embedded_proxy.rb → proxy/one_embedded_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{one_proxy.rb → proxy/one_proxy.rb} +0 -0
- data/lib/mongo_mapper/plugins/associations/{proxy.rb → proxy/proxy.rb} +63 -48
- data/lib/mongo_mapper/plugins/associations/single_association.rb +2 -11
- data/lib/mongo_mapper/plugins/dirty.rb +1 -1
- data/lib/mongo_mapper/plugins/keys/key.rb +9 -6
- data/lib/mongo_mapper/plugins/validations.rb +1 -1
- data/lib/mongo_mapper/version.rb +1 -1
- data/spec/examples.txt +1706 -1704
- data/spec/functional/keys_spec.rb +13 -0
- data/spec/unit/associations/proxy_spec.rb +5 -5
- data/spec/unit/extensions_spec.rb +9 -3
- data/spec/unit/inspect_spec.rb +1 -1
- data/spec/unit/key_spec.rb +7 -1
- metadata +33 -19
- data/lib/mongo_mapper/plugins/associations/collection.rb +0 -29
@@ -352,6 +352,19 @@ describe "Keys" do
|
|
352
352
|
it 'should remove the key' do
|
353
353
|
DocWithRemovedKey.keys.should_not have_key "_something"
|
354
354
|
end
|
355
|
+
end
|
356
|
+
|
357
|
+
describe "default with no type" do
|
358
|
+
it "should work (regression)" do
|
359
|
+
doc = Doc do
|
360
|
+
key :a_num, default: 0
|
361
|
+
end
|
355
362
|
|
363
|
+
instance = doc.new
|
364
|
+
instance.a_num.should == 0
|
365
|
+
|
366
|
+
instance = doc.new(a_num: 10)
|
367
|
+
instance.a_num.should == 10
|
368
|
+
end
|
356
369
|
end
|
357
370
|
end
|
@@ -1,19 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
class FakeNilProxy < MongoMapper::Plugins::Associations::Proxy
|
4
|
-
def
|
4
|
+
def load_target; @target ||= nil end
|
5
5
|
end
|
6
6
|
|
7
7
|
class FakeBlankProxy < MongoMapper::Plugins::Associations::Proxy
|
8
|
-
def
|
8
|
+
def load_target; @target ||= '' end
|
9
9
|
end
|
10
10
|
|
11
11
|
class FakeNumberProxy < MongoMapper::Plugins::Associations::Proxy
|
12
|
-
def
|
12
|
+
def load_target; @target ||= 17 end
|
13
13
|
end
|
14
14
|
|
15
15
|
class FakeProxy < MongoMapper::Plugins::Associations::Proxy
|
16
|
-
def
|
16
|
+
def load_target; @target ||= [1, 2] end
|
17
17
|
end
|
18
18
|
|
19
19
|
describe "Proxy" do
|
@@ -32,7 +32,7 @@ describe "Proxy" do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it "should be able to inspect the proxy" do
|
35
|
-
@proxy.inspect.should ==
|
35
|
+
@proxy.inspect.should == "#<FakeProxy:#{@proxy.object_id} [1, 2]>"
|
36
36
|
end
|
37
37
|
|
38
38
|
context "nil?" do
|
@@ -192,15 +192,21 @@ describe "Support" do
|
|
192
192
|
end
|
193
193
|
end
|
194
194
|
|
195
|
-
context "NilClass
|
195
|
+
context "NilClass.from_mongo" do
|
196
196
|
it "should return nil" do
|
197
|
-
|
197
|
+
NilClass.from_mongo(nil).should be_nil
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
context "NilClass.to_mongo" do
|
202
|
+
it "should return nil" do
|
203
|
+
NilClass.to_mongo(nil).should be_nil
|
198
204
|
end
|
199
205
|
end
|
200
206
|
|
201
207
|
context "NilClass#to_mongo" do
|
202
208
|
it "should return nil" do
|
203
|
-
nil.to_mongo
|
209
|
+
nil.to_mongo.should be_nil
|
204
210
|
end
|
205
211
|
end
|
206
212
|
|
data/spec/unit/inspect_spec.rb
CHANGED
@@ -31,7 +31,7 @@ describe "Inspect" do
|
|
31
31
|
klass.many :pets, :class => pets
|
32
32
|
|
33
33
|
doc = klass.new(:pets => [{:name => "Kitten"}])
|
34
|
-
doc.inspect.should =~ /_id:.*, pets:
|
34
|
+
doc.inspect.should =~ /_id:.*, pets: .*\[.*_id.*, name: "Kitten".*\]/
|
35
35
|
end
|
36
36
|
|
37
37
|
it "should include embedded document" do
|
data/spec/unit/key_spec.rb
CHANGED
@@ -55,6 +55,7 @@ describe "Key" do
|
|
55
55
|
it "should work with name and options" do
|
56
56
|
key = Key.new(:foo, :required => true)
|
57
57
|
key.name.should == 'foo'
|
58
|
+
key.type.should be_nil
|
58
59
|
key.options[:required].should be_truthy
|
59
60
|
end
|
60
61
|
|
@@ -111,7 +112,12 @@ describe "Key" do
|
|
111
112
|
subject { @key }
|
112
113
|
|
113
114
|
it "should cast each element correctly" do
|
114
|
-
ids = [
|
115
|
+
ids = [
|
116
|
+
BSON::ObjectId.new,
|
117
|
+
BSON::ObjectId.new,
|
118
|
+
BSON::ObjectId.new.to_s,
|
119
|
+
BSON::ObjectId.new.to_s
|
120
|
+
]
|
115
121
|
subject.set(ids).should == ids.map { |id| ObjectId.to_mongo(id) }
|
116
122
|
end
|
117
123
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongo_mapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.15.
|
4
|
+
version: 0.15.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-06-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: mongo
|
@@ -82,6 +82,20 @@ dependencies:
|
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
84
|
version: '1.0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: rexml
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
85
99
|
description: MongoMapper is a Object-Document Mapper for Ruby and Rails
|
86
100
|
email:
|
87
101
|
- nunemaker@gmail.com
|
@@ -137,24 +151,24 @@ files:
|
|
137
151
|
- lib/mongo_mapper/plugins/associations.rb
|
138
152
|
- lib/mongo_mapper/plugins/associations/base.rb
|
139
153
|
- lib/mongo_mapper/plugins/associations/belongs_to_association.rb
|
140
|
-
- lib/mongo_mapper/plugins/associations/belongs_to_polymorphic_proxy.rb
|
141
|
-
- lib/mongo_mapper/plugins/associations/belongs_to_proxy.rb
|
142
|
-
- lib/mongo_mapper/plugins/associations/collection.rb
|
143
|
-
- lib/mongo_mapper/plugins/associations/embedded_collection.rb
|
144
|
-
- lib/mongo_mapper/plugins/associations/in_array_proxy.rb
|
145
|
-
- lib/mongo_mapper/plugins/associations/in_foreign_array_proxy.rb
|
146
154
|
- lib/mongo_mapper/plugins/associations/many_association.rb
|
147
|
-
- lib/mongo_mapper/plugins/associations/many_documents_as_proxy.rb
|
148
|
-
- lib/mongo_mapper/plugins/associations/many_documents_proxy.rb
|
149
|
-
- lib/mongo_mapper/plugins/associations/many_embedded_polymorphic_proxy.rb
|
150
|
-
- lib/mongo_mapper/plugins/associations/many_embedded_proxy.rb
|
151
|
-
- lib/mongo_mapper/plugins/associations/many_polymorphic_proxy.rb
|
152
|
-
- lib/mongo_mapper/plugins/associations/one_as_proxy.rb
|
153
155
|
- lib/mongo_mapper/plugins/associations/one_association.rb
|
154
|
-
- lib/mongo_mapper/plugins/associations/
|
155
|
-
- lib/mongo_mapper/plugins/associations/
|
156
|
-
- lib/mongo_mapper/plugins/associations/
|
157
|
-
- lib/mongo_mapper/plugins/associations/proxy.rb
|
156
|
+
- lib/mongo_mapper/plugins/associations/proxy/belongs_to_polymorphic_proxy.rb
|
157
|
+
- lib/mongo_mapper/plugins/associations/proxy/belongs_to_proxy.rb
|
158
|
+
- lib/mongo_mapper/plugins/associations/proxy/collection.rb
|
159
|
+
- lib/mongo_mapper/plugins/associations/proxy/embedded_collection.rb
|
160
|
+
- lib/mongo_mapper/plugins/associations/proxy/in_array_proxy.rb
|
161
|
+
- lib/mongo_mapper/plugins/associations/proxy/in_foreign_array_proxy.rb
|
162
|
+
- lib/mongo_mapper/plugins/associations/proxy/many_documents_as_proxy.rb
|
163
|
+
- lib/mongo_mapper/plugins/associations/proxy/many_documents_proxy.rb
|
164
|
+
- lib/mongo_mapper/plugins/associations/proxy/many_embedded_polymorphic_proxy.rb
|
165
|
+
- lib/mongo_mapper/plugins/associations/proxy/many_embedded_proxy.rb
|
166
|
+
- lib/mongo_mapper/plugins/associations/proxy/many_polymorphic_proxy.rb
|
167
|
+
- lib/mongo_mapper/plugins/associations/proxy/one_as_proxy.rb
|
168
|
+
- lib/mongo_mapper/plugins/associations/proxy/one_embedded_polymorphic_proxy.rb
|
169
|
+
- lib/mongo_mapper/plugins/associations/proxy/one_embedded_proxy.rb
|
170
|
+
- lib/mongo_mapper/plugins/associations/proxy/one_proxy.rb
|
171
|
+
- lib/mongo_mapper/plugins/associations/proxy/proxy.rb
|
158
172
|
- lib/mongo_mapper/plugins/associations/single_association.rb
|
159
173
|
- lib/mongo_mapper/plugins/caching.rb
|
160
174
|
- lib/mongo_mapper/plugins/callbacks.rb
|
@@ -304,7 +318,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
304
318
|
- !ruby/object:Gem::Version
|
305
319
|
version: '0'
|
306
320
|
requirements: []
|
307
|
-
rubygems_version: 3.1.
|
321
|
+
rubygems_version: 3.1.6
|
308
322
|
signing_key:
|
309
323
|
specification_version: 4
|
310
324
|
summary: A Ruby Object Mapper for Mongo
|
@@ -1,29 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
module MongoMapper
|
3
|
-
module Plugins
|
4
|
-
module Associations
|
5
|
-
class Collection < Proxy
|
6
|
-
def to_ary
|
7
|
-
load_target
|
8
|
-
if target.is_a?(Array)
|
9
|
-
target.to_ary
|
10
|
-
else
|
11
|
-
Array(target)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
alias_method :to_a, :to_ary
|
16
|
-
|
17
|
-
def include?(*args)
|
18
|
-
load_target
|
19
|
-
target.include?(*args)
|
20
|
-
end
|
21
|
-
|
22
|
-
def reset
|
23
|
-
super
|
24
|
-
target = []
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|