mongo_mapper 0.15.3 → 0.15.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +21 -6
- data/lib/mongo_mapper/connection.rb +1 -1
- data/lib/mongo_mapper/document.rb +1 -0
- 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} +64 -48
- data/lib/mongo_mapper/plugins/associations/single_association.rb +2 -11
- data/lib/mongo_mapper/plugins/caching.rb +2 -2
- data/lib/mongo_mapper/plugins/dirty.rb +1 -1
- data/lib/mongo_mapper/plugins/embedded_callbacks.rb +2 -2
- data/lib/mongo_mapper/plugins/keys/key.rb +9 -6
- data/lib/mongo_mapper/plugins/keys.rb +14 -2
- data/lib/mongo_mapper/plugins/querying.rb +2 -2
- data/lib/mongo_mapper/plugins/shardable.rb +30 -0
- data/lib/mongo_mapper/plugins/validations.rb +1 -1
- data/lib/mongo_mapper/plugins.rb +18 -1
- data/lib/mongo_mapper/version.rb +1 -1
- data/lib/mongo_mapper.rb +18 -18
- data/spec/examples.txt +1711 -1701
- data/spec/functional/callbacks_spec.rb +5 -1
- data/spec/functional/keys_spec.rb +13 -0
- data/spec/functional/shardable_spec.rb +59 -0
- data/spec/support/sharded_model.rb +24 -0
- data/spec/unit/associations/proxy_spec.rb +18 -5
- data/spec/unit/document_spec.rb +1 -1
- data/spec/unit/embedded_document_spec.rb +3 -3
- data/spec/unit/extensions_spec.rb +9 -3
- data/spec/unit/inspect_spec.rb +1 -1
- data/spec/unit/key_spec.rb +7 -1
- data/spec/unit/mongo_mapper_spec.rb +10 -5
- metadata +36 -19
- data/lib/mongo_mapper/plugins/associations/collection.rb +0 -29
data/lib/mongo_mapper/plugins.rb
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
module MongoMapper
|
3
3
|
module Plugins
|
4
|
-
|
4
|
+
if defined?(ActiveSupport::DescendantsTracker::DescendantsArray)
|
5
|
+
DescendantsArray = ::ActiveSupport::DescendantsTracker::DescendantsArray
|
6
|
+
else
|
7
|
+
DescendantsArray = ::Array
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.direct_descendants_hash
|
11
|
+
@direct_descendants_hash ||= Hash.new { |h,k| h[k] = DescendantsArray.new }
|
12
|
+
end
|
5
13
|
|
6
14
|
def plugins
|
7
15
|
@plugins ||= []
|
@@ -14,9 +22,18 @@ module MongoMapper
|
|
14
22
|
plugins << mod
|
15
23
|
end
|
16
24
|
|
25
|
+
def direct_descendants
|
26
|
+
Plugins.direct_descendants_hash[self]
|
27
|
+
end
|
28
|
+
|
17
29
|
def included(base = nil)
|
18
30
|
direct_descendants << base if base
|
19
31
|
super
|
20
32
|
end
|
33
|
+
|
34
|
+
def inherited(subclass)
|
35
|
+
direct_descendants << subclass
|
36
|
+
super
|
37
|
+
end
|
21
38
|
end
|
22
39
|
end
|
data/lib/mongo_mapper/version.rb
CHANGED
data/lib/mongo_mapper.rb
CHANGED
@@ -60,6 +60,7 @@ module MongoMapper
|
|
60
60
|
autoload :Safe, 'mongo_mapper/plugins/safe'
|
61
61
|
autoload :Sci, 'mongo_mapper/plugins/sci'
|
62
62
|
autoload :Scopes, 'mongo_mapper/plugins/scopes'
|
63
|
+
autoload :Shardable, 'mongo_mapper/plugins/shardable'
|
63
64
|
autoload :Serialization, 'mongo_mapper/plugins/serialization'
|
64
65
|
autoload :Stats, 'mongo_mapper/plugins/stats'
|
65
66
|
autoload :StrongParameters, 'mongo_mapper/plugins/strong_parameters'
|
@@ -70,25 +71,27 @@ module MongoMapper
|
|
70
71
|
|
71
72
|
module Associations
|
72
73
|
autoload :Base, 'mongo_mapper/plugins/associations/base'
|
73
|
-
autoload :Collection, 'mongo_mapper/plugins/associations/collection'
|
74
|
-
autoload :EmbeddedCollection, 'mongo_mapper/plugins/associations/embedded_collection'
|
75
74
|
autoload :ManyAssociation, 'mongo_mapper/plugins/associations/many_association'
|
76
75
|
autoload :SingleAssociation, 'mongo_mapper/plugins/associations/single_association'
|
77
76
|
autoload :BelongsToAssociation, 'mongo_mapper/plugins/associations/belongs_to_association'
|
78
77
|
autoload :OneAssociation, 'mongo_mapper/plugins/associations/one_association'
|
79
|
-
|
80
|
-
autoload :
|
81
|
-
autoload :
|
82
|
-
autoload :
|
83
|
-
autoload :
|
84
|
-
autoload :
|
85
|
-
autoload :
|
86
|
-
autoload :
|
87
|
-
autoload :
|
88
|
-
autoload :
|
89
|
-
autoload :
|
90
|
-
autoload :
|
91
|
-
autoload :
|
78
|
+
|
79
|
+
autoload :Proxy, 'mongo_mapper/plugins/associations/proxy/proxy'
|
80
|
+
autoload :Collection, 'mongo_mapper/plugins/associations/proxy/collection'
|
81
|
+
autoload :EmbeddedCollection, 'mongo_mapper/plugins/associations/proxy/embedded_collection'
|
82
|
+
autoload :ManyDocumentsProxy, 'mongo_mapper/plugins/associations/proxy/many_documents_proxy'
|
83
|
+
autoload :BelongsToProxy, 'mongo_mapper/plugins/associations/proxy/belongs_to_proxy'
|
84
|
+
autoload :BelongsToPolymorphicProxy, 'mongo_mapper/plugins/associations/proxy/belongs_to_polymorphic_proxy'
|
85
|
+
autoload :ManyPolymorphicProxy, 'mongo_mapper/plugins/associations/proxy/many_polymorphic_proxy'
|
86
|
+
autoload :ManyEmbeddedProxy, 'mongo_mapper/plugins/associations/proxy/many_embedded_proxy'
|
87
|
+
autoload :ManyEmbeddedPolymorphicProxy, 'mongo_mapper/plugins/associations/proxy/many_embedded_polymorphic_proxy'
|
88
|
+
autoload :ManyDocumentsAsProxy, 'mongo_mapper/plugins/associations/proxy/many_documents_as_proxy'
|
89
|
+
autoload :OneProxy, 'mongo_mapper/plugins/associations/proxy/one_proxy'
|
90
|
+
autoload :OneAsProxy, 'mongo_mapper/plugins/associations/proxy/one_as_proxy'
|
91
|
+
autoload :OneEmbeddedProxy, 'mongo_mapper/plugins/associations/proxy/one_embedded_proxy'
|
92
|
+
autoload :OneEmbeddedPolymorphicProxy, 'mongo_mapper/plugins/associations/proxy/one_embedded_polymorphic_proxy'
|
93
|
+
autoload :InArrayProxy, 'mongo_mapper/plugins/associations/proxy/in_array_proxy'
|
94
|
+
autoload :InForeignArrayProxy, 'mongo_mapper/plugins/associations/proxy/in_foreign_array_proxy'
|
92
95
|
end
|
93
96
|
end
|
94
97
|
|
@@ -99,7 +102,4 @@ Dir[File.join(File.dirname(__FILE__), 'mongo_mapper', 'extensions', '*.rb')].eac
|
|
99
102
|
require extension
|
100
103
|
end
|
101
104
|
|
102
|
-
# FIXME: autoload with proxy is failing, need to investigate
|
103
|
-
require 'mongo_mapper/plugins/associations/proxy'
|
104
|
-
|
105
105
|
ActiveSupport.run_load_hooks(:mongo_mapper, MongoMapper)
|