mongoid 8.0.1 → 8.0.2
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
- checksums.yaml.gz.sig +0 -0
- data/lib/config/locales/en.yml +1 -0
- data/lib/mongoid/association/accessors.rb +6 -6
- data/lib/mongoid/association/bindable.rb +2 -2
- data/lib/mongoid/association/constrainable.rb +0 -1
- data/lib/mongoid/association/embedded/batchable.rb +5 -5
- data/lib/mongoid/association/embedded/cyclic.rb +1 -1
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +2 -2
- data/lib/mongoid/association/embedded/embedded_in.rb +1 -1
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +10 -10
- data/lib/mongoid/association/embedded/embeds_many.rb +2 -2
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +2 -2
- data/lib/mongoid/association/embedded/embeds_one.rb +3 -3
- data/lib/mongoid/association/many.rb +6 -7
- data/lib/mongoid/association/nested/many.rb +3 -3
- data/lib/mongoid/association/nested/nested_buildable.rb +4 -4
- data/lib/mongoid/association/nested/one.rb +5 -5
- data/lib/mongoid/association/one.rb +2 -2
- data/lib/mongoid/association/options.rb +9 -9
- data/lib/mongoid/association/proxy.rb +2 -3
- data/lib/mongoid/association/referenced/auto_save.rb +1 -1
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +5 -6
- data/lib/mongoid/association/referenced/belongs_to.rb +1 -1
- data/lib/mongoid/association/referenced/counter_cache.rb +2 -2
- data/lib/mongoid/association/referenced/eager.rb +2 -2
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +2 -2
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +2 -2
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +10 -10
- data/lib/mongoid/association/referenced/has_many/proxy.rb +12 -9
- data/lib/mongoid/association/referenced/has_many.rb +3 -3
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +5 -5
- data/lib/mongoid/association/referenced/has_one/proxy.rb +1 -1
- data/lib/mongoid/association/referenced/has_one.rb +3 -3
- data/lib/mongoid/association/referenced/syncable.rb +2 -2
- data/lib/mongoid/association/reflections.rb +2 -2
- data/lib/mongoid/association/relatable.rb +6 -6
- data/lib/mongoid/association.rb +5 -5
- data/lib/mongoid/atomic/modifiers.rb +2 -2
- data/lib/mongoid/attributes/dynamic.rb +3 -3
- data/lib/mongoid/attributes/nested.rb +5 -5
- data/lib/mongoid/attributes/processing.rb +1 -1
- data/lib/mongoid/attributes/projector.rb +1 -1
- data/lib/mongoid/attributes/readonly.rb +2 -2
- data/lib/mongoid/attributes.rb +13 -13
- data/lib/mongoid/changeable.rb +5 -5
- data/lib/mongoid/clients/options.rb +1 -1
- data/lib/mongoid/clients/validators/storage.rb +3 -3
- data/lib/mongoid/config/validators/client.rb +6 -6
- data/lib/mongoid/config.rb +7 -7
- data/lib/mongoid/contextual/aggregable/memory.rb +1 -1
- data/lib/mongoid/contextual/aggregable/mongo.rb +4 -4
- data/lib/mongoid/contextual/aggregable/none.rb +1 -1
- data/lib/mongoid/contextual/atomic.rb +1 -1
- data/lib/mongoid/contextual/geo_near.rb +7 -7
- data/lib/mongoid/contextual/memory.rb +5 -5
- data/lib/mongoid/contextual/mongo.rb +14 -14
- data/lib/mongoid/contextual/none.rb +2 -2
- data/lib/mongoid/contextual/queryable.rb +1 -1
- data/lib/mongoid/contextual.rb +2 -2
- data/lib/mongoid/criteria/findable.rb +7 -4
- data/lib/mongoid/criteria/includable.rb +1 -1
- data/lib/mongoid/criteria/permission.rb +1 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +2 -2
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +2 -2
- data/lib/mongoid/criteria/queryable/extensions/set.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/string.rb +3 -3
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +1 -1
- data/lib/mongoid/criteria/queryable/key.rb +3 -3
- data/lib/mongoid/criteria/queryable/optional.rb +2 -2
- data/lib/mongoid/criteria/queryable/options.rb +1 -1
- data/lib/mongoid/criteria/queryable/pipeline.rb +1 -1
- data/lib/mongoid/criteria/queryable/selectable.rb +3 -3
- data/lib/mongoid/criteria/queryable/selector.rb +3 -3
- data/lib/mongoid/criteria/queryable/smash.rb +1 -1
- data/lib/mongoid/criteria/queryable.rb +1 -1
- data/lib/mongoid/criteria/scopable.rb +2 -2
- data/lib/mongoid/criteria.rb +14 -9
- data/lib/mongoid/deprecable.rb +1 -1
- data/lib/mongoid/document.rb +2 -2
- data/lib/mongoid/equality.rb +12 -12
- data/lib/mongoid/errors/document_not_found.rb +5 -5
- data/lib/mongoid/errors/invalid_config_option.rb +1 -1
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +1 -1
- data/lib/mongoid/errors/invalid_field.rb +1 -1
- data/lib/mongoid/errors/invalid_relation.rb +1 -1
- data/lib/mongoid/errors/invalid_relation_option.rb +1 -1
- data/lib/mongoid/errors/invalid_session_use.rb +1 -1
- data/lib/mongoid/errors/invalid_storage_options.rb +1 -1
- data/lib/mongoid/errors/mongoid_error.rb +3 -3
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +1 -1
- data/lib/mongoid/errors/no_client_database.rb +1 -1
- data/lib/mongoid/errors/no_client_hosts.rb +1 -1
- data/lib/mongoid/errors/readonly_attribute.rb +1 -1
- data/lib/mongoid/errors/unknown_attribute.rb +1 -1
- data/lib/mongoid/extensions/array.rb +1 -1
- data/lib/mongoid/extensions/false_class.rb +1 -1
- data/lib/mongoid/extensions/hash.rb +1 -1
- data/lib/mongoid/extensions/module.rb +1 -1
- data/lib/mongoid/extensions/object.rb +6 -6
- data/lib/mongoid/extensions/string.rb +9 -9
- data/lib/mongoid/extensions/symbol.rb +1 -1
- data/lib/mongoid/extensions/true_class.rb +1 -1
- data/lib/mongoid/fields/foreign_key.rb +4 -4
- data/lib/mongoid/fields/localized.rb +2 -2
- data/lib/mongoid/fields/standard.rb +7 -7
- data/lib/mongoid/fields.rb +9 -9
- data/lib/mongoid/findable.rb +7 -6
- data/lib/mongoid/indexable/specification.rb +1 -1
- data/lib/mongoid/indexable/validators/options.rb +2 -1
- data/lib/mongoid/interceptable.rb +4 -4
- data/lib/mongoid/matchable.rb +1 -1
- data/lib/mongoid/matcher.rb +12 -7
- data/lib/mongoid/persistable/creatable.rb +4 -4
- data/lib/mongoid/persistable/deletable.rb +1 -1
- data/lib/mongoid/persistable/destroyable.rb +1 -1
- data/lib/mongoid/persistable/savable.rb +2 -2
- data/lib/mongoid/persistable/unsettable.rb +1 -1
- data/lib/mongoid/persistable/updatable.rb +7 -7
- data/lib/mongoid/persistable/upsertable.rb +1 -1
- data/lib/mongoid/persistable.rb +3 -3
- data/lib/mongoid/persistence_context.rb +3 -3
- data/lib/mongoid/query_cache.rb +2 -2
- data/lib/mongoid/scopable.rb +17 -15
- data/lib/mongoid/serializable.rb +10 -6
- data/lib/mongoid/stateful.rb +10 -10
- data/lib/mongoid/tasks/database.rb +0 -2
- data/lib/mongoid/threaded/lifecycle.rb +5 -5
- data/lib/mongoid/threaded.rb +9 -9
- data/lib/mongoid/timestamps/updated.rb +1 -1
- data/lib/mongoid/traversable.rb +3 -3
- data/lib/mongoid/validatable/localizable.rb +1 -1
- data/lib/mongoid/validatable/macros.rb +0 -2
- data/lib/mongoid/validatable/presence.rb +2 -2
- data/lib/mongoid/validatable/uniqueness.rb +7 -7
- data/lib/mongoid/validatable.rb +6 -6
- data/lib/mongoid/version.rb +1 -1
- data/spec/mongoid/equality_spec.rb +12 -12
- data/spec/mongoid/indexable_spec.rb +23 -1
- data/spec/mongoid/scopable_spec.rb +34 -16
- data.tar.gz.sig +0 -0
- metadata +2 -2
- metadata.gz.sig +0 -0
|
@@ -20,7 +20,7 @@ module Mongoid
|
|
|
20
20
|
# @example Is the aggregable aggregating?
|
|
21
21
|
# aggregable.aggregating?
|
|
22
22
|
#
|
|
23
|
-
# @return [ true
|
|
23
|
+
# @return [ true | false ] If the aggregable is aggregating.
|
|
24
24
|
def aggregating?
|
|
25
25
|
!!@aggregating
|
|
26
26
|
end
|
|
@@ -69,7 +69,7 @@ module Mongoid
|
|
|
69
69
|
# @example Add an unwind to the pipeline.
|
|
70
70
|
# aggregable.unwind(:field)
|
|
71
71
|
#
|
|
72
|
-
# @param [ String
|
|
72
|
+
# @param [ String | Symbol ] field The name of the field to unwind.
|
|
73
73
|
#
|
|
74
74
|
# @return [ Aggregable ] The aggregable.
|
|
75
75
|
def unwind(field)
|
|
@@ -23,7 +23,7 @@ module Mongoid
|
|
|
23
23
|
# @example Evolve the object to a regex.
|
|
24
24
|
# Regexp.evolve("\A[123]")
|
|
25
25
|
#
|
|
26
|
-
# @param [ Regexp
|
|
26
|
+
# @param [ Regexp | String ] object The object to evolve.
|
|
27
27
|
#
|
|
28
28
|
# @return [ Regexp ] The evolved regex.
|
|
29
29
|
def evolve(object)
|
|
@@ -50,7 +50,7 @@ module Mongoid
|
|
|
50
50
|
# @example Evolve the object to a regex.
|
|
51
51
|
# BSON::Regexp::Raw.evolve("\\A[123]")
|
|
52
52
|
#
|
|
53
|
-
# @param [ BSON::Regexp::Raw
|
|
53
|
+
# @param [ BSON::Regexp::Raw | String ] object The object to evolve.
|
|
54
54
|
#
|
|
55
55
|
# @return [ BSON::Regexp::Raw ] The evolved raw regex.
|
|
56
56
|
def evolve(object)
|
|
@@ -60,7 +60,7 @@ module Mongoid
|
|
|
60
60
|
# "field".__expr_part__(value)
|
|
61
61
|
#
|
|
62
62
|
# @param [ Object ] value The value of the criteria.
|
|
63
|
-
# @param [ true
|
|
63
|
+
# @param [ true | false ] negating If the selection should be negated.
|
|
64
64
|
#
|
|
65
65
|
# @return [ Hash ] The selection.
|
|
66
66
|
def __expr_part__(value, negating = false)
|
|
@@ -84,9 +84,9 @@ module Mongoid
|
|
|
84
84
|
# @example Get the value as an expression.
|
|
85
85
|
# String.__expr_part__("field", value)
|
|
86
86
|
#
|
|
87
|
-
# @param [ String
|
|
87
|
+
# @param [ String | Symbol ] key The field key.
|
|
88
88
|
# @param [ Object ] value The value of the criteria.
|
|
89
|
-
# @param [ true
|
|
89
|
+
# @param [ true | false ] negating If the selection should be negated.
|
|
90
90
|
#
|
|
91
91
|
# @return [ Hash ] The selection.
|
|
92
92
|
def __expr_part__(key, value, negating = false)
|
|
@@ -14,7 +14,7 @@ module Mongoid
|
|
|
14
14
|
# :field.__expr_part__(value)
|
|
15
15
|
#
|
|
16
16
|
# @param [ Object ] value The value of the criteria.
|
|
17
|
-
# @param [ true
|
|
17
|
+
# @param [ true | false ] negating If the selection should be negated.
|
|
18
18
|
#
|
|
19
19
|
# @return [ Hash ] The selection.
|
|
20
20
|
def __expr_part__(value, negating = false)
|
|
@@ -82,7 +82,7 @@ module Mongoid
|
|
|
82
82
|
#
|
|
83
83
|
# @param [ Object ] other The object to compare to.
|
|
84
84
|
#
|
|
85
|
-
# @return [ true
|
|
85
|
+
# @return [ true | false ] If the objects are equal.
|
|
86
86
|
def ==(other)
|
|
87
87
|
return false unless other.is_a?(Key)
|
|
88
88
|
name == other.name && operator == other.operator && expanded == other.expanded
|
|
@@ -104,7 +104,7 @@ module Mongoid
|
|
|
104
104
|
# @example Instantiate a key for sorting.
|
|
105
105
|
# Key.new(:field, :__override__, 1)
|
|
106
106
|
#
|
|
107
|
-
# @param [ String
|
|
107
|
+
# @param [ String | Symbol ] name The field name.
|
|
108
108
|
# @param [ Symbol ] strategy The name of the merge strategy.
|
|
109
109
|
# @param [ String | Integer ] operator The MongoDB operator,
|
|
110
110
|
# or sort direction (1 or -1).
|
|
@@ -124,7 +124,7 @@ module Mongoid
|
|
|
124
124
|
# key.__expr_part__(50)
|
|
125
125
|
#
|
|
126
126
|
# @param [ Object ] object The value to be included.
|
|
127
|
-
# @param [ true
|
|
127
|
+
# @param [ true | false ] negating If the selection should be negated.
|
|
128
128
|
#
|
|
129
129
|
# @return [ Hash ] The raw MongoDB selector.
|
|
130
130
|
def __expr_part__(object, negating = false)
|
|
@@ -163,7 +163,7 @@ module Mongoid
|
|
|
163
163
|
# @example Add sorting options via a string.
|
|
164
164
|
# optional.order_by("name ASC, dob DESC")
|
|
165
165
|
#
|
|
166
|
-
# @param [ Array
|
|
166
|
+
# @param [ Array | Hash | String ] spec The sorting specification.
|
|
167
167
|
#
|
|
168
168
|
# @return [ Optional ] The cloned optional.
|
|
169
169
|
def order_by(*spec)
|
|
@@ -184,7 +184,7 @@ module Mongoid
|
|
|
184
184
|
# @example Replace the ordering.
|
|
185
185
|
# optional.reorder(name: :asc)
|
|
186
186
|
#
|
|
187
|
-
# @param [ Array
|
|
187
|
+
# @param [ Array | Hash | String ] spec The sorting specification.
|
|
188
188
|
#
|
|
189
189
|
# @return [ Optional ] The cloned optional.
|
|
190
190
|
def reorder(*spec)
|
|
@@ -54,7 +54,7 @@ module Mongoid
|
|
|
54
54
|
# @example Store a value in the options.
|
|
55
55
|
# options.store(:key, "testing")
|
|
56
56
|
#
|
|
57
|
-
# @param [ String
|
|
57
|
+
# @param [ String | Symbol ] key The name of the attribute.
|
|
58
58
|
# @param [ Object ] value The value to add.
|
|
59
59
|
#
|
|
60
60
|
# @return [ Object ] The stored object.
|
|
@@ -67,7 +67,7 @@ module Mongoid
|
|
|
67
67
|
# pipeline.unwind(:field)
|
|
68
68
|
# pipeline.unwind(document)
|
|
69
69
|
#
|
|
70
|
-
# @param [ String
|
|
70
|
+
# @param [ String | Symbol | Hash ] field_or_doc A field name or a
|
|
71
71
|
# document.
|
|
72
72
|
#
|
|
73
73
|
# @return [ Pipeline ] The pipeline.
|
|
@@ -529,7 +529,7 @@ module Mongoid
|
|
|
529
529
|
# @example Is the selectable negating?
|
|
530
530
|
# selectable.negating?
|
|
531
531
|
#
|
|
532
|
-
# @return [ true
|
|
532
|
+
# @return [ true | false ] If the selectable is negating.
|
|
533
533
|
def negating?
|
|
534
534
|
!!negating
|
|
535
535
|
end
|
|
@@ -736,7 +736,7 @@ module Mongoid
|
|
|
736
736
|
# conditions in a query. Mongoid will build such a query but the
|
|
737
737
|
# server will return an error when trying to execute it.
|
|
738
738
|
#
|
|
739
|
-
# @param [ String
|
|
739
|
+
# @param [ String | Symbol ] terms A string of terms that MongoDB parses
|
|
740
740
|
# and uses to query the text index.
|
|
741
741
|
# @param [ Hash ] opts Text search options. See MongoDB documentation
|
|
742
742
|
# for options.
|
|
@@ -774,7 +774,7 @@ module Mongoid
|
|
|
774
774
|
# @example Add a javascript selection.
|
|
775
775
|
# selectable.where("this.name == 'syd'")
|
|
776
776
|
#
|
|
777
|
-
# @param [ String
|
|
777
|
+
# @param [ String | Hash ] criterion The javascript or standard selection.
|
|
778
778
|
#
|
|
779
779
|
# @return [ Selectable ] The cloned selectable.
|
|
780
780
|
def where(*criteria)
|
|
@@ -13,7 +13,7 @@ module Mongoid
|
|
|
13
13
|
# @example Merge in another selector.
|
|
14
14
|
# selector.merge!(name: "test")
|
|
15
15
|
#
|
|
16
|
-
# @param [ Hash
|
|
16
|
+
# @param [ Hash | Selector ] other The object to merge in.
|
|
17
17
|
#
|
|
18
18
|
# @return [ Selector ] The selector.
|
|
19
19
|
def merge!(other)
|
|
@@ -43,7 +43,7 @@ module Mongoid
|
|
|
43
43
|
# @example Store a value in the selector.
|
|
44
44
|
# selector.store(:key, "testing")
|
|
45
45
|
#
|
|
46
|
-
# @param [ String
|
|
46
|
+
# @param [ String | Symbol ] key The name of the attribute.
|
|
47
47
|
# @param [ Object ] value The value to add.
|
|
48
48
|
#
|
|
49
49
|
# @return [ Object ] The stored object.
|
|
@@ -277,7 +277,7 @@ module Mongoid
|
|
|
277
277
|
#
|
|
278
278
|
# @param [ String ] key The key to check.
|
|
279
279
|
#
|
|
280
|
-
# @return [ true
|
|
280
|
+
# @return [ true | false ] If the key is for a multi-select.
|
|
281
281
|
def multi_selection?(key)
|
|
282
282
|
%w($and $or $nor).include?(key)
|
|
283
283
|
end
|
|
@@ -95,7 +95,7 @@ module Mongoid
|
|
|
95
95
|
# @example Get the name and serializer.
|
|
96
96
|
# smash.storage_pair("id")
|
|
97
97
|
#
|
|
98
|
-
# @param [ Symbol
|
|
98
|
+
# @param [ Symbol | String ] key The key provided to the selection.
|
|
99
99
|
#
|
|
100
100
|
# @return [ Array<String, Object> ] The name of the db field and
|
|
101
101
|
# serializer.
|
|
@@ -46,7 +46,7 @@ module Mongoid
|
|
|
46
46
|
#
|
|
47
47
|
# @param [ Object ] other The object to compare against.
|
|
48
48
|
#
|
|
49
|
-
# @return [ true
|
|
49
|
+
# @return [ true | false ] If the objects are equal.
|
|
50
50
|
def ==(other)
|
|
51
51
|
return false unless other.is_a?(Queryable)
|
|
52
52
|
selector == other.selector && options == other.options
|
|
@@ -83,7 +83,7 @@ module Mongoid
|
|
|
83
83
|
# @example Is the default scope applied?
|
|
84
84
|
# criteria.scoped?
|
|
85
85
|
#
|
|
86
|
-
# @return [ true
|
|
86
|
+
# @return [ true | false ] If the default scope is applied.
|
|
87
87
|
def scoped?
|
|
88
88
|
!!(defined?(@scoped) ? @scoped : nil)
|
|
89
89
|
end
|
|
@@ -108,7 +108,7 @@ module Mongoid
|
|
|
108
108
|
# @example Is the criteria unscoped?
|
|
109
109
|
# criteria.unscoped?
|
|
110
110
|
#
|
|
111
|
-
# @return [ true
|
|
111
|
+
# @return [ true | false ] If the criteria is force unscoped.
|
|
112
112
|
def unscoped?
|
|
113
113
|
!!(defined?(@unscoped) ? @unscoped : nil)
|
|
114
114
|
end
|
data/lib/mongoid/criteria.rb
CHANGED
|
@@ -52,7 +52,7 @@ module Mongoid
|
|
|
52
52
|
#
|
|
53
53
|
# @param [ Object ] other The other +Enumerable+ or +Criteria+ to compare to.
|
|
54
54
|
#
|
|
55
|
-
# @return [ true
|
|
55
|
+
# @return [ true | false ] If the objects are equal.
|
|
56
56
|
def ==(other)
|
|
57
57
|
return super if other.respond_to?(:selector)
|
|
58
58
|
entries == other
|
|
@@ -73,6 +73,9 @@ module Mongoid
|
|
|
73
73
|
# treated by Mongoid - the decision between delegating to +Findable+ vs
|
|
74
74
|
# +Enumerable+ is made solely based on whether +find+ is passed a block.
|
|
75
75
|
#
|
|
76
|
+
# @note Each argument can be an individual id, an array of ids or
|
|
77
|
+
# a nested array. Each array will be flattened.
|
|
78
|
+
#
|
|
76
79
|
# @example Finds a document by its _id, invokes Findable#find.
|
|
77
80
|
# critera.find("1234")
|
|
78
81
|
#
|
|
@@ -85,6 +88,9 @@ module Mongoid
|
|
|
85
88
|
# @example Tries to find a document whose _id is the stringification of the provided Proc, typically failing.
|
|
86
89
|
# enumerator = criteria.find(-> { "Default Band" })
|
|
87
90
|
#
|
|
91
|
+
# @param [ Object | Array<Object> ] *args The ids.
|
|
92
|
+
# @param [ Proc ] block Optional block to pass.
|
|
93
|
+
#
|
|
88
94
|
# @return [ Document | Array<Document> | nil ] A document or matching documents.
|
|
89
95
|
#
|
|
90
96
|
# @raise Errors::DocumentNotFound If the parameters were _id values and
|
|
@@ -138,7 +144,7 @@ module Mongoid
|
|
|
138
144
|
# @example Is the criteria for embedded documents?
|
|
139
145
|
# criteria.embedded?
|
|
140
146
|
#
|
|
141
|
-
# @return [ true
|
|
147
|
+
# @return [ true | false ] If the criteria is embedded.
|
|
142
148
|
def embedded?
|
|
143
149
|
!!@embedded
|
|
144
150
|
end
|
|
@@ -268,7 +274,7 @@ module Mongoid
|
|
|
268
274
|
# @example Is the criteria a none criteria?
|
|
269
275
|
# criteria.empty_and_chainable?
|
|
270
276
|
#
|
|
271
|
-
# @return [ true
|
|
277
|
+
# @return [ true | false ] If the criteria is a none.
|
|
272
278
|
def empty_and_chainable?
|
|
273
279
|
!!@none
|
|
274
280
|
end
|
|
@@ -326,9 +332,9 @@ module Mongoid
|
|
|
326
332
|
# crtiteria.respond_to?(:each)
|
|
327
333
|
#
|
|
328
334
|
# @param [ Symbol ] name The name of the class method on the +Document+.
|
|
329
|
-
# @param [ true
|
|
335
|
+
# @param [ true | false ] include_private Whether to include privates.
|
|
330
336
|
#
|
|
331
|
-
# @return [ true
|
|
337
|
+
# @return [ true | false ] If the criteria responds to the method.
|
|
332
338
|
def respond_to?(name, include_private = false)
|
|
333
339
|
super || klass.respond_to?(name) || CHECK.respond_to?(name, include_private)
|
|
334
340
|
end
|
|
@@ -379,7 +385,7 @@ module Mongoid
|
|
|
379
385
|
# @example Add a javascript selection.
|
|
380
386
|
# criteria.where("this.name == 'syd'")
|
|
381
387
|
#
|
|
382
|
-
# @param [ String
|
|
388
|
+
# @param [ String | Hash ] expression The javascript or standard selection.
|
|
383
389
|
#
|
|
384
390
|
# @raise [ UnsupportedJavascript ] If provided a string and the criteria
|
|
385
391
|
# is embedded.
|
|
@@ -405,7 +411,6 @@ module Mongoid
|
|
|
405
411
|
super
|
|
406
412
|
end
|
|
407
413
|
|
|
408
|
-
|
|
409
414
|
# Get a version of this criteria without the options.
|
|
410
415
|
#
|
|
411
416
|
# @example Get the criteria without options.
|
|
@@ -511,7 +516,7 @@ module Mongoid
|
|
|
511
516
|
# @example Add the type selection.
|
|
512
517
|
# criteria.merge_type_selection
|
|
513
518
|
#
|
|
514
|
-
# @return [ true
|
|
519
|
+
# @return [ true | false ] If type selection was added.
|
|
515
520
|
def merge_type_selection
|
|
516
521
|
selector.merge!(type_selection) if type_selectable?
|
|
517
522
|
end
|
|
@@ -523,7 +528,7 @@ module Mongoid
|
|
|
523
528
|
# @example If the criteria type selectable?
|
|
524
529
|
# criteria.type_selectable?
|
|
525
530
|
#
|
|
526
|
-
# @return [ true
|
|
531
|
+
# @return [ true | false ] If type selection should be added.
|
|
527
532
|
def type_selectable?
|
|
528
533
|
klass.hereditary? &&
|
|
529
534
|
!selector.keys.include?(self.discriminator_key) &&
|
data/lib/mongoid/deprecable.rb
CHANGED
|
@@ -24,7 +24,7 @@ module Mongoid
|
|
|
24
24
|
# #=> Mongoid.logger.warn("meow is deprecated and will be removed from Mongoid 8.0 (eat :catnip instead)")
|
|
25
25
|
#
|
|
26
26
|
# @param [ Module ] target_module The parent which contains the method.
|
|
27
|
-
# @param [ Symbol | Hash<Symbol, [Symbol|String]> ] method_descriptors
|
|
27
|
+
# @param [ Symbol | Hash<Symbol, [ Symbol | String ]> ] method_descriptors
|
|
28
28
|
# The methods to deprecate, with optional replacement instructions.
|
|
29
29
|
def deprecate(target_module, *method_descriptors)
|
|
30
30
|
Mongoid::Deprecation.deprecate_methods(target_module, *method_descriptors)
|
data/lib/mongoid/document.rb
CHANGED
|
@@ -56,7 +56,7 @@ module Mongoid
|
|
|
56
56
|
# @example Check if frozen
|
|
57
57
|
# document.frozen?
|
|
58
58
|
#
|
|
59
|
-
# @return [ true
|
|
59
|
+
# @return [ true | false ] True if frozen, else false.
|
|
60
60
|
def frozen?
|
|
61
61
|
attributes.frozen?
|
|
62
62
|
end
|
|
@@ -150,7 +150,7 @@ module Mongoid
|
|
|
150
150
|
#
|
|
151
151
|
# @param [ Hash ] options The options.
|
|
152
152
|
#
|
|
153
|
-
# @option options [ true
|
|
153
|
+
# @option options [ true | false ] :compact (Deprecated) Whether to include fields
|
|
154
154
|
# with nil values in the json document.
|
|
155
155
|
#
|
|
156
156
|
# @return [ Hash ] The document as json.
|
data/lib/mongoid/equality.rb
CHANGED
|
@@ -26,9 +26,9 @@ module Mongoid
|
|
|
26
26
|
# @example Compare for equality.
|
|
27
27
|
# document == other
|
|
28
28
|
#
|
|
29
|
-
# @param [ Document
|
|
29
|
+
# @param [ Document | Object ] other The other object to compare with.
|
|
30
30
|
#
|
|
31
|
-
# @return [ true
|
|
31
|
+
# @return [ true | false ] True if the ids are equal, false if not.
|
|
32
32
|
def ==(other)
|
|
33
33
|
self.class == other.class &&
|
|
34
34
|
attributes["_id"] == other.attributes["_id"]
|
|
@@ -39,14 +39,14 @@ module Mongoid
|
|
|
39
39
|
# @example Compare the classes.
|
|
40
40
|
# document === other
|
|
41
41
|
#
|
|
42
|
-
# @param [ Document
|
|
42
|
+
# @param [ Document | Object ] other The other object to compare with.
|
|
43
43
|
#
|
|
44
|
-
# @return [ true
|
|
44
|
+
# @return [ true | false ] True if the classes are equal, false if not.
|
|
45
45
|
def ===(other)
|
|
46
46
|
if Mongoid.legacy_triple_equals
|
|
47
|
-
super
|
|
48
|
-
else
|
|
49
47
|
other.class == Class ? self.class === other : self == other
|
|
48
|
+
else
|
|
49
|
+
super
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
|
|
@@ -55,9 +55,9 @@ module Mongoid
|
|
|
55
55
|
# @example Perform equality checking.
|
|
56
56
|
# document.eql?(other)
|
|
57
57
|
#
|
|
58
|
-
# @param [ Document
|
|
58
|
+
# @param [ Document | Object ] other The object to check against.
|
|
59
59
|
#
|
|
60
|
-
# @return [ true
|
|
60
|
+
# @return [ true | false ] True if equal, false if not.
|
|
61
61
|
def eql?(other)
|
|
62
62
|
self == (other)
|
|
63
63
|
end
|
|
@@ -68,14 +68,14 @@ module Mongoid
|
|
|
68
68
|
# @example Compare the classes.
|
|
69
69
|
# document === other
|
|
70
70
|
#
|
|
71
|
-
# @param [ Document
|
|
71
|
+
# @param [ Document | Object ] other The other object to compare with.
|
|
72
72
|
#
|
|
73
|
-
# @return [ true
|
|
73
|
+
# @return [ true | false ] True if the classes are equal, false if not.
|
|
74
74
|
def ===(other)
|
|
75
75
|
if Mongoid.legacy_triple_equals
|
|
76
|
-
other.is_a?(self)
|
|
77
|
-
else
|
|
78
76
|
other.class == Class ? self <= other : other.is_a?(self)
|
|
77
|
+
else
|
|
78
|
+
other.is_a?(self)
|
|
79
79
|
end
|
|
80
80
|
end
|
|
81
81
|
end
|
|
@@ -19,8 +19,8 @@ module Mongoid
|
|
|
19
19
|
# DocumentNotFound.new(Person, :ssn => "1234", :name => "Helen")
|
|
20
20
|
#
|
|
21
21
|
# @param [ Class ] klass The model class.
|
|
22
|
-
# @param [ Hash
|
|
23
|
-
# @param [ Array
|
|
22
|
+
# @param [ Hash | Array | Object ] params The attributes or ids.
|
|
23
|
+
# @param [ Array | Hash ] unmatched The unmatched ids, if appropriate. If
|
|
24
24
|
# there is a shard key this will be a hash.
|
|
25
25
|
def initialize(klass, params, unmatched = nil)
|
|
26
26
|
if !unmatched && !params.is_a?(Hash)
|
|
@@ -50,7 +50,7 @@ module Mongoid
|
|
|
50
50
|
# @example Get the missing string.
|
|
51
51
|
# error.missing(1)
|
|
52
52
|
#
|
|
53
|
-
# @param [ Object
|
|
53
|
+
# @param [ Object | Array ] unmatched The ids that did not match.
|
|
54
54
|
#
|
|
55
55
|
# @return [ String ] The missing string.
|
|
56
56
|
def missing(unmatched)
|
|
@@ -68,7 +68,7 @@ module Mongoid
|
|
|
68
68
|
# @example Get the searched string.
|
|
69
69
|
# error.searched(1)
|
|
70
70
|
#
|
|
71
|
-
# @param [ Object
|
|
71
|
+
# @param [ Object | Array ] params The ids that were searched for.
|
|
72
72
|
#
|
|
73
73
|
# @return [ String ] The searched string.
|
|
74
74
|
def searched(params)
|
|
@@ -84,7 +84,7 @@ module Mongoid
|
|
|
84
84
|
# @example Get the total.
|
|
85
85
|
# error.total([ 1, 2, 3 ])
|
|
86
86
|
#
|
|
87
|
-
# @param [ Object
|
|
87
|
+
# @param [ Object | Array ] params What was searched for.
|
|
88
88
|
#
|
|
89
89
|
# @return [ Integer ] The total number.
|
|
90
90
|
def total(params)
|
|
@@ -12,7 +12,7 @@ module Mongoid
|
|
|
12
12
|
# @example Create the new error.
|
|
13
13
|
# InvalidConfigOption.new(:name, [ :option ])
|
|
14
14
|
#
|
|
15
|
-
# @param [ Symbol
|
|
15
|
+
# @param [ Symbol | String ] name The attempted config option name.
|
|
16
16
|
def initialize(name)
|
|
17
17
|
super(
|
|
18
18
|
compose_message(
|
|
@@ -13,7 +13,7 @@ module Mongoid
|
|
|
13
13
|
#
|
|
14
14
|
# @param [ Mongoid::Association ] association The association for which this
|
|
15
15
|
# dependency is defined.
|
|
16
|
-
# @param [ Symbol
|
|
16
|
+
# @param [ Symbol | String ] invalid_strategy The attempted invalid strategy.
|
|
17
17
|
# @param [ Array<Symbol> ] valid_strategies The valid strategies.
|
|
18
18
|
def initialize(association, invalid_strategy, valid_strategies)
|
|
19
19
|
super(
|
|
@@ -42,7 +42,7 @@ module Mongoid
|
|
|
42
42
|
# @param [ Class ] klass The document class.
|
|
43
43
|
# @param [ Symbol ] name The method name.
|
|
44
44
|
#
|
|
45
|
-
# @return [ Class
|
|
45
|
+
# @return [ Class | Module ] The originating class or module.
|
|
46
46
|
def origin(klass, name)
|
|
47
47
|
klass.instance_method(name).owner
|
|
48
48
|
end
|
|
@@ -38,7 +38,7 @@ module Mongoid
|
|
|
38
38
|
# @param [ Class ] klass The document class.
|
|
39
39
|
# @param [ Symbol ] name The method name.
|
|
40
40
|
#
|
|
41
|
-
# @return [ Class
|
|
41
|
+
# @return [ Class | Module ] The originating class or module.
|
|
42
42
|
def origin(klass, name)
|
|
43
43
|
klass.instance_method(name).owner
|
|
44
44
|
end
|
|
@@ -12,7 +12,7 @@ module Mongoid
|
|
|
12
12
|
# InvalidRelationOption.new(Person, invalid_option: 'make_me_a_sandwich')
|
|
13
13
|
#
|
|
14
14
|
# @param [ Class ] klass The model class.
|
|
15
|
-
# @param [ String
|
|
15
|
+
# @param [ String | Symbol ] name The association name.
|
|
16
16
|
# @param [ Symbol ] option The invalid option.
|
|
17
17
|
# @param [ Array<Symbol> ] valid_options The valid option.
|
|
18
18
|
def initialize(klass, name, option, valid_options)
|
|
@@ -12,7 +12,7 @@ module Mongoid
|
|
|
12
12
|
# @example Create the error.
|
|
13
13
|
# InvalidSessionUse.new(:invalid_session_use)
|
|
14
14
|
#
|
|
15
|
-
# @param [ :invalid_session_use
|
|
15
|
+
# @param [ :invalid_session_use | :invalid_session_nesting ] error_type The type of session misuse.
|
|
16
16
|
def initialize(error_type)
|
|
17
17
|
super(compose_message(error_type.to_s))
|
|
18
18
|
end
|
|
@@ -12,7 +12,7 @@ module Mongoid
|
|
|
12
12
|
# InvalidStorageOptions.new(Person, invalid_option: 'name')
|
|
13
13
|
#
|
|
14
14
|
# @param [ Class ] klass The model class.
|
|
15
|
-
# @param [ Hash
|
|
15
|
+
# @param [ Hash | String | Symbol ] options The provided options.
|
|
16
16
|
def initialize(klass, options)
|
|
17
17
|
super(
|
|
18
18
|
compose_message(
|
|
@@ -53,7 +53,7 @@ module Mongoid
|
|
|
53
53
|
# @example Create the problem.
|
|
54
54
|
# error.problem("error", {})
|
|
55
55
|
#
|
|
56
|
-
# @param [ String
|
|
56
|
+
# @param [ String | Symbol ] key The error key.
|
|
57
57
|
# @param [ Hash ] attributes The attributes to interpolate.
|
|
58
58
|
#
|
|
59
59
|
# @return [ String ] The problem.
|
|
@@ -66,7 +66,7 @@ module Mongoid
|
|
|
66
66
|
# @example Create the summary.
|
|
67
67
|
# error.summary("error", {})
|
|
68
68
|
#
|
|
69
|
-
# @param [ String
|
|
69
|
+
# @param [ String | Symbol ] key The error key.
|
|
70
70
|
# @param [ Hash ] attributes The attributes to interpolate.
|
|
71
71
|
#
|
|
72
72
|
# @return [ String ] The summary.
|
|
@@ -79,7 +79,7 @@ module Mongoid
|
|
|
79
79
|
# @example Create the resolution.
|
|
80
80
|
# error.resolution("error", {})
|
|
81
81
|
#
|
|
82
|
-
# @param [ String
|
|
82
|
+
# @param [ String | Symbol ] key The error key.
|
|
83
83
|
# @param [ Hash ] attributes The attributes to interpolate.
|
|
84
84
|
#
|
|
85
85
|
# @return [ String ] The resolution.
|
|
@@ -13,7 +13,7 @@ module Mongoid
|
|
|
13
13
|
# NestedAttributesMetadataNotFound.new(klass, name)
|
|
14
14
|
#
|
|
15
15
|
# @param [ Class ] klass The class of the document.
|
|
16
|
-
# @param [ Symbol
|
|
16
|
+
# @param [ Symbol | String ] name The name of the association
|
|
17
17
|
def initialize(klass, name)
|
|
18
18
|
super(
|
|
19
19
|
compose_message(
|
|
@@ -11,7 +11,7 @@ module Mongoid
|
|
|
11
11
|
# @example Create the new error.
|
|
12
12
|
# NoClientDatabase.new(:default, {}})
|
|
13
13
|
#
|
|
14
|
-
# @param [ Symbol
|
|
14
|
+
# @param [ Symbol | String ] name The db config key.
|
|
15
15
|
# @param [ Hash ] config The hash configuration options.
|
|
16
16
|
def initialize(name, config)
|
|
17
17
|
super(
|
|
@@ -11,7 +11,7 @@ module Mongoid
|
|
|
11
11
|
# @example Create the new error.
|
|
12
12
|
# NoClientHosts.new(:default, {}})
|
|
13
13
|
#
|
|
14
|
-
# @param [ Symbol
|
|
14
|
+
# @param [ Symbol | String ] name The db config key.
|
|
15
15
|
# @param [ Hash ] config The hash configuration options.
|
|
16
16
|
def initialize(name, config)
|
|
17
17
|
super(
|
|
@@ -12,7 +12,7 @@ module Mongoid
|
|
|
12
12
|
# @example Create the new error.
|
|
13
13
|
# ReadonlyAttribute.new(:title, "mr")
|
|
14
14
|
#
|
|
15
|
-
# @param [ Symbol
|
|
15
|
+
# @param [ Symbol | String ] name The name of the attribute.
|
|
16
16
|
# @param [ Object ] value The attempted set value.
|
|
17
17
|
def initialize(name, value)
|
|
18
18
|
super(
|
|
@@ -13,7 +13,7 @@ module Mongoid
|
|
|
13
13
|
# UnknownAttribute.new(Person, "gender")
|
|
14
14
|
#
|
|
15
15
|
# @param [ Class ] klass The model class.
|
|
16
|
-
# @param [ String
|
|
16
|
+
# @param [ String | Symbol ] name The name of the attribute.
|
|
17
17
|
def initialize(klass, name)
|
|
18
18
|
super(
|
|
19
19
|
compose_message("unknown_attribute", { klass: klass.name, name: name })
|
|
@@ -76,7 +76,7 @@ module Mongoid
|
|
|
76
76
|
# @example Is this multi args?
|
|
77
77
|
# [ 1, 2, 3 ].multi_arged?
|
|
78
78
|
#
|
|
79
|
-
# @return [ true
|
|
79
|
+
# @return [ true | false ] If the array is multi args.
|
|
80
80
|
def multi_arged?
|
|
81
81
|
!first.is_a?(Hash) && first.resizable? || size > 1
|
|
82
82
|
end
|
|
@@ -21,7 +21,7 @@ module Mongoid
|
|
|
21
21
|
#
|
|
22
22
|
# @param [ Class ] other The class to check.
|
|
23
23
|
#
|
|
24
|
-
# @return [ true
|
|
24
|
+
# @return [ true | false ] If the other is a boolean.
|
|
25
25
|
def is_a?(other)
|
|
26
26
|
if other == Mongoid::Boolean || other.class == Mongoid::Boolean
|
|
27
27
|
return true
|
|
@@ -190,7 +190,7 @@ module Mongoid
|
|
|
190
190
|
#
|
|
191
191
|
# @param [ String ] operator The operator.
|
|
192
192
|
# @param [ Class ] klass The model class.
|
|
193
|
-
# @param [ String
|
|
193
|
+
# @param [ String | Symbol ] key The field key.
|
|
194
194
|
# @param [ Object ] value The value to mongoize.
|
|
195
195
|
#
|
|
196
196
|
# @return [ Object ] The mongoized value.
|