mongoid 7.6.1 → 8.0.1
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 +2 -0
- data/README.md +3 -3
- data/Rakefile +21 -85
- data/lib/config/locales/en.yml +46 -30
- data/lib/mongoid/association/accessors.rb +32 -3
- data/lib/mongoid/association/bindable.rb +48 -0
- data/lib/mongoid/association/builders.rb +4 -2
- data/lib/mongoid/association/eager_loadable.rb +29 -7
- data/lib/mongoid/association/embedded/batchable.rb +28 -5
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +24 -2
- data/lib/mongoid/association/embedded/embedded_in.rb +2 -1
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +1 -0
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +1 -1
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +40 -18
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +18 -4
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +21 -2
- data/lib/mongoid/association/macros.rb +2 -1
- data/lib/mongoid/association/many.rb +5 -0
- data/lib/mongoid/association/nested/many.rb +2 -1
- data/lib/mongoid/association/proxy.rb +12 -0
- data/lib/mongoid/association/referenced/auto_save.rb +3 -2
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +1 -0
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
- data/lib/mongoid/association/referenced/belongs_to.rb +1 -1
- data/lib/mongoid/association/referenced/counter_cache.rb +8 -8
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +64 -11
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +4 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +10 -18
- data/lib/mongoid/association/referenced/has_many/proxy.rb +12 -9
- data/lib/mongoid/association/referenced/has_one/buildable.rb +1 -1
- data/lib/mongoid/association/referenced/has_one/proxy.rb +8 -11
- data/lib/mongoid/association/referenced/syncable.rb +2 -2
- data/lib/mongoid/association/relatable.rb +38 -4
- data/lib/mongoid/attributes/processing.rb +9 -2
- data/lib/mongoid/attributes.rb +30 -27
- data/lib/mongoid/cacheable.rb +2 -2
- data/lib/mongoid/changeable.rb +37 -2
- data/lib/mongoid/clients/factory.rb +0 -4
- data/lib/mongoid/clients/options.rb +4 -0
- data/lib/mongoid/clients/sessions.rb +2 -14
- data/lib/mongoid/config.rb +15 -11
- data/lib/mongoid/contextual/aggregable/memory.rb +23 -15
- data/lib/mongoid/contextual/aggregable/mongo.rb +1 -1
- data/lib/mongoid/contextual/map_reduce.rb +2 -2
- data/lib/mongoid/contextual/memory.rb +55 -28
- data/lib/mongoid/contextual/mongo.rb +173 -287
- data/lib/mongoid/contextual/none.rb +33 -15
- data/lib/mongoid/copyable.rb +32 -8
- data/lib/mongoid/criteria/includable.rb +24 -20
- data/lib/mongoid/criteria/marshalable.rb +10 -2
- data/lib/mongoid/criteria/queryable/extensions/array.rb +2 -15
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +25 -4
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/date.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -16
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/object.rb +2 -1
- data/lib/mongoid/criteria/queryable/extensions/range.rb +13 -5
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/time.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +6 -1
- data/lib/mongoid/criteria/queryable/optional.rb +3 -9
- data/lib/mongoid/criteria/queryable/options.rb +1 -1
- data/lib/mongoid/criteria/queryable/selectable.rb +2 -24
- data/lib/mongoid/criteria/queryable/selector.rb +90 -5
- data/lib/mongoid/criteria/queryable/smash.rb +39 -6
- data/lib/mongoid/criteria/queryable/storable.rb +1 -1
- data/lib/mongoid/criteria/queryable.rb +11 -6
- data/lib/mongoid/criteria.rb +1 -28
- data/lib/mongoid/deprecable.rb +36 -0
- data/lib/mongoid/deprecation.rb +25 -0
- data/lib/mongoid/document.rb +88 -33
- data/lib/mongoid/equality.rb +4 -4
- data/lib/mongoid/errors/document_not_found.rb +6 -2
- data/lib/mongoid/errors/invalid_dot_dollar_assignment.rb +23 -0
- data/lib/mongoid/errors/invalid_field.rb +5 -1
- data/lib/mongoid/errors/invalid_field_type.rb +26 -0
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +1 -1
- data/lib/mongoid/errors.rb +2 -2
- data/lib/mongoid/extensions/array.rb +8 -6
- data/lib/mongoid/extensions/big_decimal.rb +29 -10
- data/lib/mongoid/extensions/binary.rb +42 -0
- data/lib/mongoid/extensions/boolean.rb +8 -2
- data/lib/mongoid/extensions/date.rb +26 -20
- data/lib/mongoid/extensions/date_time.rb +1 -1
- data/lib/mongoid/extensions/float.rb +4 -5
- data/lib/mongoid/extensions/hash.rb +13 -32
- data/lib/mongoid/extensions/integer.rb +4 -5
- data/lib/mongoid/extensions/object.rb +2 -0
- data/lib/mongoid/extensions/range.rb +41 -10
- data/lib/mongoid/extensions/regexp.rb +11 -4
- data/lib/mongoid/extensions/set.rb +11 -4
- data/lib/mongoid/extensions/string.rb +2 -13
- data/lib/mongoid/extensions/symbol.rb +3 -14
- data/lib/mongoid/extensions/time.rb +27 -16
- data/lib/mongoid/extensions/time_with_zone.rb +1 -2
- data/lib/mongoid/extensions.rb +1 -0
- data/lib/mongoid/factory.rb +42 -7
- data/lib/mongoid/fields/foreign_key.rb +7 -0
- data/lib/mongoid/fields/validators/macro.rb +3 -9
- data/lib/mongoid/fields.rb +49 -7
- data/lib/mongoid/findable.rb +21 -16
- data/lib/mongoid/indexable/specification.rb +1 -1
- data/lib/mongoid/indexable/validators/options.rb +4 -1
- data/lib/mongoid/interceptable.rb +69 -9
- data/lib/mongoid/persistable/creatable.rb +14 -5
- data/lib/mongoid/persistable/updatable.rb +12 -5
- data/lib/mongoid/persistence_context.rb +8 -42
- data/lib/mongoid/query_cache.rb +6 -258
- data/lib/mongoid/railties/controller_runtime.rb +1 -1
- data/lib/mongoid/reloadable.rb +7 -3
- data/lib/mongoid/scopable.rb +9 -11
- data/lib/mongoid/selectable.rb +1 -2
- data/lib/mongoid/shardable.rb +11 -35
- data/lib/mongoid/stateful.rb +27 -1
- data/lib/mongoid/timestamps/created.rb +1 -1
- data/lib/mongoid/timestamps/updated.rb +1 -1
- data/lib/mongoid/touchable.rb +2 -3
- data/lib/mongoid/traversable.rb +1 -0
- data/lib/mongoid/validatable/uniqueness.rb +2 -1
- data/lib/mongoid/version.rb +1 -5
- data/lib/mongoid/warnings.rb +3 -4
- data/lib/mongoid.rb +1 -0
- data/spec/config/mongoid.yml +16 -0
- data/spec/integration/app_spec.rb +8 -12
- data/spec/integration/associations/belongs_to_spec.rb +18 -0
- data/spec/integration/associations/embedded_spec.rb +15 -0
- data/spec/integration/associations/embeds_many_spec.rb +15 -2
- data/spec/integration/associations/embeds_one_spec.rb +18 -0
- data/spec/integration/associations/foreign_key_spec.rb +9 -0
- data/spec/integration/associations/has_and_belongs_to_many_spec.rb +21 -0
- data/spec/integration/associations/has_one_spec.rb +97 -1
- data/spec/integration/associations/scope_option_spec.rb +1 -1
- data/spec/integration/callbacks_models.rb +95 -1
- data/spec/integration/callbacks_spec.rb +226 -4
- data/spec/integration/criteria/range_spec.rb +95 -1
- data/spec/integration/discriminator_key_spec.rb +115 -76
- data/spec/integration/dots_and_dollars_spec.rb +277 -0
- data/spec/integration/i18n_fallbacks_spec.rb +1 -15
- data/spec/integration/matcher_examples_spec.rb +20 -13
- data/spec/integration/matcher_operator_data/type_decimal.yml +3 -2
- data/spec/integration/matcher_operator_spec.rb +3 -5
- data/spec/integration/persistence/range_field_spec.rb +350 -0
- data/spec/mongoid/association/counter_cache_spec.rb +1 -1
- data/spec/mongoid/association/depending_spec.rb +9 -9
- data/spec/mongoid/association/eager_spec.rb +2 -1
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +2 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +54 -0
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +69 -9
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +112 -0
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +198 -8
- data/spec/mongoid/association/embedded/embeds_many_models.rb +36 -0
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +12 -0
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +68 -0
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +25 -0
- data/spec/mongoid/association/embedded/embeds_one_models.rb +19 -0
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +28 -0
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +2 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +54 -0
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +15 -0
- data/spec/mongoid/association/referenced/belongs_to_models.rb +11 -0
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +2 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +38 -5
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +25 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +35 -2
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +109 -0
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +2 -56
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +62 -13
- data/spec/mongoid/association/referenced/has_many_models.rb +3 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +25 -0
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +2 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +107 -1
- data/spec/mongoid/association/referenced/has_one_models.rb +16 -0
- data/spec/mongoid/association/syncable_spec.rb +14 -0
- data/spec/mongoid/atomic/paths_spec.rb +0 -14
- data/spec/mongoid/attributes/nested_spec.rb +80 -11
- data/spec/mongoid/attributes/nested_spec_models.rb +48 -0
- data/spec/mongoid/attributes/projector_spec.rb +1 -5
- data/spec/mongoid/attributes_spec.rb +480 -27
- data/spec/mongoid/cacheable_spec.rb +3 -3
- data/spec/mongoid/changeable_spec.rb +130 -13
- data/spec/mongoid/clients/factory_spec.rb +22 -60
- data/spec/mongoid/clients/sessions_spec.rb +0 -38
- data/spec/mongoid/clients_spec.rb +2 -2
- data/spec/mongoid/config_spec.rb +52 -15
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +396 -158
- data/spec/mongoid/contextual/aggregable/memory_table.yml +88 -0
- data/spec/mongoid/contextual/aggregable/memory_table_spec.rb +62 -0
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -16
- data/spec/mongoid/contextual/memory_spec.rb +521 -14
- data/spec/mongoid/contextual/mongo_spec.rb +566 -426
- data/spec/mongoid/contextual/none_spec.rb +11 -19
- data/spec/mongoid/copyable_spec.rb +451 -2
- data/spec/mongoid/criteria/findable_spec.rb +86 -210
- data/spec/mongoid/criteria/includable_spec.rb +1492 -0
- data/spec/mongoid/criteria/includable_spec_models.rb +54 -0
- data/spec/mongoid/criteria/marshalable_spec.rb +18 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +7 -19
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +134 -26
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +1 -2
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -15
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +73 -7
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/optional_spec.rb +0 -484
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +50 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +77 -85
- data/spec/mongoid/criteria/queryable/selector_spec.rb +16 -77
- data/spec/mongoid/criteria/queryable/storable_spec.rb +0 -72
- data/spec/mongoid/criteria_spec.rb +469 -1201
- data/spec/mongoid/document_fields_spec.rb +173 -24
- data/spec/mongoid/document_spec.rb +32 -41
- data/spec/mongoid/equality_spec.rb +12 -12
- data/spec/mongoid/errors/document_not_found_spec.rb +29 -2
- data/spec/mongoid/errors/invalid_field_spec.rb +1 -1
- data/spec/mongoid/errors/invalid_field_type_spec.rb +55 -0
- data/spec/mongoid/errors/mongoid_error_spec.rb +3 -1
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +1 -1
- data/spec/mongoid/extensions/array_spec.rb +16 -2
- data/spec/mongoid/extensions/big_decimal_spec.rb +697 -212
- data/spec/mongoid/extensions/binary_spec.rb +44 -9
- data/spec/mongoid/extensions/boolean_spec.rb +68 -82
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +7 -3
- data/spec/mongoid/extensions/date_spec.rb +71 -1
- data/spec/mongoid/extensions/date_time_spec.rb +15 -9
- data/spec/mongoid/extensions/float_spec.rb +48 -76
- data/spec/mongoid/extensions/hash_spec.rb +30 -236
- data/spec/mongoid/extensions/integer_spec.rb +45 -66
- data/spec/mongoid/extensions/range_spec.rb +255 -54
- data/spec/mongoid/extensions/regexp_spec.rb +58 -33
- data/spec/mongoid/extensions/set_spec.rb +106 -0
- data/spec/mongoid/extensions/string_spec.rb +53 -25
- data/spec/mongoid/extensions/symbol_spec.rb +18 -25
- data/spec/mongoid/extensions/time_spec.rb +634 -66
- data/spec/mongoid/extensions/time_with_zone_spec.rb +17 -31
- data/spec/mongoid/factory_spec.rb +61 -1
- data/spec/mongoid/fields_spec.rb +321 -50
- data/spec/mongoid/findable_spec.rb +64 -29
- data/spec/mongoid/indexable/specification_spec.rb +2 -2
- data/spec/mongoid/indexable_spec.rb +16 -19
- data/spec/mongoid/interceptable_spec.rb +584 -5
- data/spec/mongoid/interceptable_spec_models.rb +235 -4
- data/spec/mongoid/matcher/extract_attribute_spec.rb +1 -5
- data/spec/mongoid/mongoizable_spec.rb +285 -0
- data/spec/mongoid/persistable/creatable_spec.rb +2 -2
- data/spec/mongoid/persistable/deletable_spec.rb +2 -2
- data/spec/mongoid/persistable/destroyable_spec.rb +2 -2
- data/spec/mongoid/persistable/upsertable_spec.rb +14 -0
- data/spec/mongoid/persistence_context_spec.rb +24 -0
- data/spec/mongoid/query_cache_middleware_spec.rb +0 -18
- data/spec/mongoid/query_cache_spec.rb +1 -156
- data/spec/mongoid/reloadable_spec.rb +35 -2
- data/spec/mongoid/scopable_spec.rb +36 -34
- data/spec/mongoid/serializable_spec.rb +14 -7
- data/spec/mongoid/shardable_models.rb +0 -14
- data/spec/mongoid/shardable_spec.rb +61 -153
- data/spec/mongoid/stateful_spec.rb +28 -0
- data/spec/mongoid/timestamps_spec.rb +390 -0
- data/spec/mongoid/timestamps_spec_models.rb +67 -0
- data/spec/mongoid/touchable_spec.rb +116 -0
- data/spec/mongoid/touchable_spec_models.rb +12 -8
- data/spec/mongoid/traversable_spec.rb +4 -11
- data/spec/mongoid/validatable/presence_spec.rb +1 -1
- data/spec/mongoid/validatable/uniqueness_spec.rb +60 -31
- data/spec/mongoid/warnings_spec.rb +35 -0
- data/spec/mongoid_spec.rb +1 -7
- data/spec/rails/controller_extension/controller_runtime_spec.rb +2 -2
- data/spec/rails/mongoid_spec.rb +4 -16
- data/spec/shared/lib/mrss/docker_runner.rb +1 -8
- data/spec/shared/lib/mrss/event_subscriber.rb +5 -15
- data/spec/shared/lib/mrss/lite_constraints.rb +2 -10
- data/spec/shared/lib/mrss/server_version_registry.rb +24 -17
- data/spec/shared/lib/mrss/spec_organizer.rb +3 -32
- data/spec/shared/lib/mrss/utils.rb +6 -28
- data/spec/shared/share/Dockerfile.erb +107 -33
- data/spec/shared/shlib/distro.sh +0 -10
- data/spec/shared/shlib/server.sh +33 -64
- data/spec/shared/shlib/set_env.sh +71 -12
- data/spec/support/constraints.rb +24 -0
- data/spec/support/expectations.rb +17 -20
- data/spec/support/macros.rb +30 -0
- data/spec/support/models/augmentation.rb +12 -0
- data/spec/support/models/band.rb +3 -0
- data/spec/support/models/catalog.rb +24 -0
- data/spec/support/models/circus.rb +3 -0
- data/spec/support/models/fanatic.rb +8 -0
- data/spec/support/models/implant.rb +9 -0
- data/spec/support/models/label.rb +2 -0
- data/spec/support/models/passport.rb +9 -0
- data/spec/support/models/person.rb +1 -0
- data/spec/support/models/player.rb +2 -0
- data/spec/support/models/powerup.rb +12 -0
- data/spec/support/models/registry.rb +1 -0
- data/spec/support/models/school.rb +14 -0
- data/spec/support/models/shield.rb +18 -0
- data/spec/support/models/student.rb +14 -0
- data/spec/support/models/weapon.rb +12 -0
- data.tar.gz.sig +0 -0
- metadata +695 -641
- metadata.gz.sig +0 -0
- data/lib/mongoid/errors/eager_load.rb +0 -23
- data/lib/mongoid/errors/invalid_value.rb +0 -17
- data/spec/mongoid/errors/eager_load_spec.rb +0 -31
- data/spec/shared/CANDIDATE.md +0 -28
- data/spec/shared/lib/mrss/release/candidate.rb +0 -281
- data/spec/shared/lib/mrss/release/product_data.rb +0 -144
- data/spec/shared/lib/tasks/candidate.rake +0 -64
data/lib/mongoid/errors.rb
CHANGED
|
@@ -6,7 +6,6 @@ require "mongoid/errors/callback"
|
|
|
6
6
|
require "mongoid/errors/criteria_argument_required"
|
|
7
7
|
require "mongoid/errors/document_not_destroyed"
|
|
8
8
|
require "mongoid/errors/document_not_found"
|
|
9
|
-
require "mongoid/errors/eager_load"
|
|
10
9
|
require "mongoid/errors/empty_config_file"
|
|
11
10
|
require "mongoid/errors/in_memory_collation_not_supported"
|
|
12
11
|
require "mongoid/errors/invalid_collection"
|
|
@@ -15,6 +14,7 @@ require "mongoid/errors/invalid_config_option"
|
|
|
15
14
|
require "mongoid/errors/invalid_dependent_strategy"
|
|
16
15
|
require "mongoid/errors/invalid_field"
|
|
17
16
|
require "mongoid/errors/invalid_field_option"
|
|
17
|
+
require "mongoid/errors/invalid_field_type"
|
|
18
18
|
require "mongoid/errors/invalid_find"
|
|
19
19
|
require "mongoid/errors/invalid_includes"
|
|
20
20
|
require "mongoid/errors/invalid_index"
|
|
@@ -24,6 +24,7 @@ require "mongoid/errors/invalid_persistence_option"
|
|
|
24
24
|
require "mongoid/errors/invalid_query"
|
|
25
25
|
# Must be after invalid_query.
|
|
26
26
|
require "mongoid/errors/invalid_discriminator_key_target"
|
|
27
|
+
require "mongoid/errors/invalid_dot_dollar_assignment"
|
|
27
28
|
require "mongoid/errors/invalid_elem_match_operator"
|
|
28
29
|
require "mongoid/errors/invalid_estimated_count_criteria"
|
|
29
30
|
require "mongoid/errors/invalid_expression_operator"
|
|
@@ -36,7 +37,6 @@ require "mongoid/errors/invalid_set_polymorphic_relation"
|
|
|
36
37
|
require "mongoid/errors/invalid_storage_options"
|
|
37
38
|
require "mongoid/errors/invalid_storage_parent"
|
|
38
39
|
require "mongoid/errors/invalid_time"
|
|
39
|
-
require "mongoid/errors/invalid_value"
|
|
40
40
|
require "mongoid/errors/inverse_not_found"
|
|
41
41
|
require "mongoid/errors/mixed_relations"
|
|
42
42
|
require "mongoid/errors/mixed_client_configuration"
|
|
@@ -87,7 +87,7 @@ module Mongoid
|
|
|
87
87
|
# @example Mongoize the object.
|
|
88
88
|
# object.mongoize
|
|
89
89
|
#
|
|
90
|
-
# @return [ Array ] The object.
|
|
90
|
+
# @return [ Array | nil ] The object or nil.
|
|
91
91
|
def mongoize
|
|
92
92
|
::Array.mongoize(self)
|
|
93
93
|
end
|
|
@@ -144,12 +144,12 @@ module Mongoid
|
|
|
144
144
|
#
|
|
145
145
|
# @param [ Object ] object The object to mongoize.
|
|
146
146
|
#
|
|
147
|
-
# @return [ Array ] The object mongoized.
|
|
147
|
+
# @return [ Array | nil ] The object mongoized or nil.
|
|
148
148
|
def mongoize(object)
|
|
149
|
-
if object.
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
return if object.nil?
|
|
150
|
+
case object
|
|
151
|
+
when ::Array, ::Set
|
|
152
|
+
object.map(&:mongoize)
|
|
153
153
|
end
|
|
154
154
|
end
|
|
155
155
|
|
|
@@ -169,3 +169,5 @@ end
|
|
|
169
169
|
|
|
170
170
|
::Array.__send__(:include, Mongoid::Extensions::Array)
|
|
171
171
|
::Array.extend(Mongoid::Extensions::Array::ClassMethods)
|
|
172
|
+
|
|
173
|
+
::Mongoid.deprecate(Array, :blank_criteria)
|
|
@@ -20,9 +20,9 @@ module Mongoid
|
|
|
20
20
|
# @example Mongoize the object.
|
|
21
21
|
# object.mongoize
|
|
22
22
|
#
|
|
23
|
-
# @return [
|
|
23
|
+
# @return [ String | BSON::Decimal128 | nil ] The object or nil.
|
|
24
24
|
def mongoize
|
|
25
|
-
|
|
25
|
+
::BigDecimal.mongoize(self)
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
# Is the BigDecimal a number?
|
|
@@ -39,26 +39,45 @@ module Mongoid
|
|
|
39
39
|
|
|
40
40
|
# Convert the object from its mongo friendly ruby type to this type.
|
|
41
41
|
#
|
|
42
|
-
# @example Demongoize the object.
|
|
43
|
-
# Object.demongoize(object)
|
|
44
|
-
#
|
|
45
42
|
# @param [ Object ] object The object to demongoize.
|
|
46
43
|
#
|
|
47
|
-
# @return [ BigDecimal
|
|
44
|
+
# @return [ BigDecimal | nil ] A BigDecimal derived from the object or nil.
|
|
48
45
|
def demongoize(object)
|
|
49
|
-
|
|
46
|
+
return if object.blank?
|
|
47
|
+
if object.is_a?(BSON::Decimal128)
|
|
48
|
+
object.to_big_decimal
|
|
49
|
+
elsif object.numeric?
|
|
50
|
+
BigDecimal(object.to_s)
|
|
51
|
+
elsif object.numeric?
|
|
52
|
+
object.to_d
|
|
53
|
+
end
|
|
50
54
|
end
|
|
51
55
|
|
|
52
|
-
# Mongoize an object of any type to how it's stored in the db
|
|
56
|
+
# Mongoize an object of any type to how it's stored in the db.
|
|
53
57
|
#
|
|
54
58
|
# @example Mongoize the object.
|
|
55
59
|
# BigDecimal.mongoize(123)
|
|
56
60
|
#
|
|
57
61
|
# @param [ Object ] object The object to Mongoize
|
|
58
62
|
#
|
|
59
|
-
# @return [ String
|
|
63
|
+
# @return [ String | BSON::Decimal128 | nil ] A String or Decimal128
|
|
64
|
+
# representing the object or nil. String if Mongoid.map_big_decimal_to_decimal128
|
|
65
|
+
# is false, BSON::Decimal128 otherwise.
|
|
60
66
|
def mongoize(object)
|
|
61
|
-
|
|
67
|
+
return if object.blank?
|
|
68
|
+
if Mongoid.map_big_decimal_to_decimal128
|
|
69
|
+
if object.is_a?(BSON::Decimal128)
|
|
70
|
+
object
|
|
71
|
+
elsif object.is_a?(BigDecimal)
|
|
72
|
+
BSON::Decimal128.new(object)
|
|
73
|
+
elsif object.numeric?
|
|
74
|
+
BSON::Decimal128.new(object.to_s)
|
|
75
|
+
end
|
|
76
|
+
else
|
|
77
|
+
if object.is_a?(BSON::Decimal128) || object.numeric?
|
|
78
|
+
object.to_s
|
|
79
|
+
end
|
|
80
|
+
end
|
|
62
81
|
end
|
|
63
82
|
end
|
|
64
83
|
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mongoid
|
|
4
|
+
module Extensions
|
|
5
|
+
module Binary
|
|
6
|
+
|
|
7
|
+
# Turn the object from the ruby type we deal with to a Mongo friendly
|
|
8
|
+
# type.
|
|
9
|
+
#
|
|
10
|
+
# @example Mongoize the object.
|
|
11
|
+
# object.mongoize
|
|
12
|
+
#
|
|
13
|
+
# @return [ BSON::Binary | nil ] The object.
|
|
14
|
+
def mongoize
|
|
15
|
+
BSON::Binary.mongoize(self)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module ClassMethods
|
|
19
|
+
|
|
20
|
+
# Mongoize an object of any type to how it's stored in the db.
|
|
21
|
+
#
|
|
22
|
+
# @example Mongoize the object.
|
|
23
|
+
# BigDecimal.mongoize(123)
|
|
24
|
+
#
|
|
25
|
+
# @param [ Object ] object The object to Mongoize
|
|
26
|
+
#
|
|
27
|
+
# @return [ BSON::Binary | nil ] A Binary representing the object or nil.
|
|
28
|
+
def mongoize(object)
|
|
29
|
+
return if object.nil?
|
|
30
|
+
case object
|
|
31
|
+
when BSON::Binary then object
|
|
32
|
+
when String, Symbol then BSON::Binary.new(object.to_s)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
alias :demongoize :mongoize
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
BSON::Binary.__send__(:include, Mongoid::Extensions::Binary)
|
|
42
|
+
BSON::Binary.extend(Mongoid::Extensions::Binary::ClassMethods)
|
|
@@ -11,10 +11,16 @@ module Mongoid
|
|
|
11
11
|
# @example Mongoize the object.
|
|
12
12
|
# Boolean.mongoize("123.11")
|
|
13
13
|
#
|
|
14
|
-
# @return [
|
|
14
|
+
# @return [ true | false | nil ] The object mongoized or nil.
|
|
15
15
|
def mongoize(object)
|
|
16
|
-
|
|
16
|
+
return if object.nil?
|
|
17
|
+
if object.to_s =~ (/\A(true|t|yes|y|on|1|1.0)\z/i)
|
|
18
|
+
true
|
|
19
|
+
elsif object.to_s =~ (/\A(false|f|no|n|off|0|0.0)\z/i)
|
|
20
|
+
false
|
|
21
|
+
end
|
|
17
22
|
end
|
|
23
|
+
alias :demongoize :mongoize
|
|
18
24
|
end
|
|
19
25
|
end
|
|
20
26
|
end
|
|
@@ -4,12 +4,6 @@ module Mongoid
|
|
|
4
4
|
module Extensions
|
|
5
5
|
module Date
|
|
6
6
|
|
|
7
|
-
# Constant for epoch - used when passing invalid times.
|
|
8
|
-
#
|
|
9
|
-
# @deprecated No longer used as a return value from #mongoize passed
|
|
10
|
-
# an invalid date string.
|
|
11
|
-
EPOCH = ::Date.new(1970, 1, 1)
|
|
12
|
-
|
|
13
7
|
# Convert the date into a time.
|
|
14
8
|
#
|
|
15
9
|
# @example Convert the date to a time.
|
|
@@ -43,9 +37,20 @@ module Mongoid
|
|
|
43
37
|
#
|
|
44
38
|
# @param [ Time ] object The time from Mongo.
|
|
45
39
|
#
|
|
46
|
-
# @return [ Date ] The object as a date.
|
|
40
|
+
# @return [ Date | nil ] The object as a date or nil.
|
|
47
41
|
def demongoize(object)
|
|
48
|
-
|
|
42
|
+
return if object.nil?
|
|
43
|
+
if object.is_a?(String)
|
|
44
|
+
object = begin
|
|
45
|
+
object.__mongoize_time__
|
|
46
|
+
rescue ArgumentError
|
|
47
|
+
nil
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
if object.acts_like?(:time) || object.acts_like?(:date)
|
|
52
|
+
::Date.new(object.year, object.month, object.day)
|
|
53
|
+
end
|
|
49
54
|
end
|
|
50
55
|
|
|
51
56
|
# Turn the object from the ruby type we deal with to a Mongo friendly
|
|
@@ -56,20 +61,21 @@ module Mongoid
|
|
|
56
61
|
#
|
|
57
62
|
# @param [ Object ] object The object to mongoize.
|
|
58
63
|
#
|
|
59
|
-
# @return [ Time ] The object mongoized.
|
|
64
|
+
# @return [ Time | nil ] The object mongoized or nil.
|
|
60
65
|
def mongoize(object)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
end
|
|
69
|
-
::Time.utc(time.year, time.month, time.day)
|
|
70
|
-
rescue ArgumentError
|
|
71
|
-
nil
|
|
66
|
+
return if object.blank?
|
|
67
|
+
begin
|
|
68
|
+
if object.is_a?(String)
|
|
69
|
+
# https://jira.mongodb.org/browse/MONGOID-4460
|
|
70
|
+
time = ::Time.parse(object)
|
|
71
|
+
else
|
|
72
|
+
time = object.__mongoize_time__
|
|
72
73
|
end
|
|
74
|
+
rescue ArgumentError
|
|
75
|
+
nil
|
|
76
|
+
end
|
|
77
|
+
if time.acts_like?(:time)
|
|
78
|
+
::Time.utc(time.year, time.month, time.day)
|
|
73
79
|
end
|
|
74
80
|
end
|
|
75
81
|
end
|
|
@@ -39,7 +39,7 @@ module Mongoid
|
|
|
39
39
|
#
|
|
40
40
|
# @param [ Time ] object The time from Mongo.
|
|
41
41
|
#
|
|
42
|
-
# @return [ DateTime ] The object as a
|
|
42
|
+
# @return [ DateTime | nil ] The object as a datetime or nil.
|
|
43
43
|
def demongoize(object)
|
|
44
44
|
::Time.demongoize(object).try(:to_datetime)
|
|
45
45
|
end
|
|
@@ -34,12 +34,11 @@ module Mongoid
|
|
|
34
34
|
#
|
|
35
35
|
# @param [ Object ] object The object to mongoize.
|
|
36
36
|
#
|
|
37
|
-
# @return [
|
|
37
|
+
# @return [ Float | nil ] The object mongoized or nil.
|
|
38
38
|
def mongoize(object)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
nil
|
|
39
|
+
return if object.blank?
|
|
40
|
+
if object.numeric?
|
|
41
|
+
object.to_f
|
|
43
42
|
end
|
|
44
43
|
end
|
|
45
44
|
alias :demongoize :mongoize
|
|
@@ -11,7 +11,7 @@ module Mongoid
|
|
|
11
11
|
#
|
|
12
12
|
# @return [ Hash ] The converted hash.
|
|
13
13
|
def __evolve_object_id__
|
|
14
|
-
|
|
14
|
+
transform_values!(&:__evolve_object_id__)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
# Mongoizes each value in the hash to an object id if it is convertable.
|
|
@@ -24,7 +24,7 @@ module Mongoid
|
|
|
24
24
|
if id = self['$oid']
|
|
25
25
|
BSON::ObjectId.from_string(id)
|
|
26
26
|
else
|
|
27
|
-
|
|
27
|
+
transform_values!(&:__mongoize_object_id__)
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
@@ -148,7 +148,7 @@ module Mongoid
|
|
|
148
148
|
# @example Mongoize the object.
|
|
149
149
|
# object.mongoize
|
|
150
150
|
#
|
|
151
|
-
# @return [ Hash ] The object.
|
|
151
|
+
# @return [ Hash | nil ] The object mongoized or nil.
|
|
152
152
|
def mongoize
|
|
153
153
|
::Hash.mongoize(self)
|
|
154
154
|
end
|
|
@@ -163,28 +163,6 @@ module Mongoid
|
|
|
163
163
|
true
|
|
164
164
|
end
|
|
165
165
|
|
|
166
|
-
ALLOWED_TO_CRITERIA_METHODS = %i[
|
|
167
|
-
all all_in all_of and any_in any_of asc ascending
|
|
168
|
-
batch_size between
|
|
169
|
-
collation comment cursor_type
|
|
170
|
-
desc descending
|
|
171
|
-
elem_match eq exists extras
|
|
172
|
-
geo_spatial group gt gte
|
|
173
|
-
hint
|
|
174
|
-
in includes
|
|
175
|
-
limit lt lte
|
|
176
|
-
max_distance max_scan max_time_ms merge mod
|
|
177
|
-
ne near near_sphere nin no_timeout none none_of nor not not_in
|
|
178
|
-
offset only or order order_by
|
|
179
|
-
project
|
|
180
|
-
raw read reorder
|
|
181
|
-
scoped skip slice snapshot
|
|
182
|
-
text_search type
|
|
183
|
-
unscoped unwind
|
|
184
|
-
where with_size with_type without
|
|
185
|
-
].freeze
|
|
186
|
-
private_constant :ALLOWED_TO_CRITERIA_METHODS
|
|
187
|
-
|
|
188
166
|
# Convert this hash to a criteria. Will iterate over each keys in the
|
|
189
167
|
# hash which must correspond to method on a criteria object. The hash
|
|
190
168
|
# must also include a "klass" key.
|
|
@@ -196,11 +174,7 @@ module Mongoid
|
|
|
196
174
|
def to_criteria
|
|
197
175
|
criteria = Criteria.new(delete(:klass) || delete("klass"))
|
|
198
176
|
each_pair do |method, args|
|
|
199
|
-
|
|
200
|
-
unless ALLOWED_TO_CRITERIA_METHODS.include?(method_sym)
|
|
201
|
-
raise ArgumentError, "Method '#{method}' is not allowed in to_criteria"
|
|
202
|
-
end
|
|
203
|
-
criteria = criteria.public_send(method_sym, args)
|
|
177
|
+
criteria = criteria.__send__(method, args)
|
|
204
178
|
end
|
|
205
179
|
criteria
|
|
206
180
|
end
|
|
@@ -243,10 +217,15 @@ module Mongoid
|
|
|
243
217
|
#
|
|
244
218
|
# @param [ Object ] object The object to mongoize.
|
|
245
219
|
#
|
|
246
|
-
# @return [ Hash ] The object mongoized.
|
|
220
|
+
# @return [ Hash | nil ] The object mongoized or nil.
|
|
247
221
|
def mongoize(object)
|
|
248
222
|
return if object.nil?
|
|
249
|
-
|
|
223
|
+
if object.is_a?(Hash)
|
|
224
|
+
# Need to use transform_values! which maintains the BSON::Document
|
|
225
|
+
# instead of transform_values which always returns a hash. To do this,
|
|
226
|
+
# we first need to dup the hash.
|
|
227
|
+
object.dup.transform_values!(&:mongoize)
|
|
228
|
+
end
|
|
250
229
|
end
|
|
251
230
|
|
|
252
231
|
# Can the size of this object change?
|
|
@@ -265,3 +244,5 @@ end
|
|
|
265
244
|
|
|
266
245
|
::Hash.__send__(:include, Mongoid::Extensions::Hash)
|
|
267
246
|
::Hash.extend(Mongoid::Extensions::Hash::ClassMethods)
|
|
247
|
+
|
|
248
|
+
::Mongoid.deprecate(Hash, :blank_criteria)
|
|
@@ -42,12 +42,11 @@ module Mongoid
|
|
|
42
42
|
# @example Mongoize the object.
|
|
43
43
|
# BigDecimal.mongoize("123.11")
|
|
44
44
|
#
|
|
45
|
-
# @return [
|
|
45
|
+
# @return [ Integer | nil ] The object mongoized or nil.
|
|
46
46
|
def mongoize(object)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
nil
|
|
47
|
+
return if object.blank?
|
|
48
|
+
if object.numeric?
|
|
49
|
+
object.to_i
|
|
51
50
|
end
|
|
52
51
|
end
|
|
53
52
|
alias :demongoize :mongoize
|
|
@@ -20,7 +20,7 @@ module Mongoid
|
|
|
20
20
|
# @example Mongoize the object.
|
|
21
21
|
# range.mongoize
|
|
22
22
|
#
|
|
23
|
-
# @return [ Hash ] The object mongoized.
|
|
23
|
+
# @return [ Hash | nil ] The object mongoized or nil.
|
|
24
24
|
def mongoize
|
|
25
25
|
::Range.mongoize(self)
|
|
26
26
|
end
|
|
@@ -44,9 +44,23 @@ module Mongoid
|
|
|
44
44
|
#
|
|
45
45
|
# @param [ Hash ] object The object to demongoize.
|
|
46
46
|
#
|
|
47
|
-
# @return [ Range ] The range.
|
|
47
|
+
# @return [ Range | nil ] The range, or nil if object cannot be represented as range.
|
|
48
|
+
#
|
|
49
|
+
# @note Ruby 2.6 and lower do not support endless ranges that Ruby 2.7+ support.
|
|
48
50
|
def demongoize(object)
|
|
49
|
-
object.nil?
|
|
51
|
+
return if object.nil?
|
|
52
|
+
if object.is_a?(Hash)
|
|
53
|
+
hash = object.slice('min', 'max', 'exclude_end', :min, :max, :exclude_end)
|
|
54
|
+
unless hash.blank?
|
|
55
|
+
begin
|
|
56
|
+
::Range.new(hash["min"] || hash[:min],
|
|
57
|
+
hash["max"] || hash[:max],
|
|
58
|
+
hash["exclude_end"] || hash[:exclude_end])
|
|
59
|
+
rescue ArgumentError # can be removed when Ruby version >= 2.7
|
|
60
|
+
nil
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
50
64
|
end
|
|
51
65
|
|
|
52
66
|
# Turn the object from the ruby type we deal with to a Mongo friendly
|
|
@@ -55,16 +69,33 @@ module Mongoid
|
|
|
55
69
|
# @example Mongoize the object.
|
|
56
70
|
# Range.mongoize(1..3)
|
|
57
71
|
#
|
|
58
|
-
# @param [
|
|
72
|
+
# @param [ Object ] object The object to mongoize.
|
|
59
73
|
#
|
|
60
|
-
# @return [ Hash ] The object mongoized.
|
|
74
|
+
# @return [ Hash | nil ] The object mongoized or nil.
|
|
61
75
|
def mongoize(object)
|
|
62
|
-
return
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
76
|
+
return if object.nil?
|
|
77
|
+
case object
|
|
78
|
+
when Hash then __mongoize_hash__(object)
|
|
79
|
+
when Range then __mongoize_range__(object)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
private
|
|
84
|
+
|
|
85
|
+
def __mongoize_hash__(object)
|
|
86
|
+
hash = object.stringify_keys
|
|
87
|
+
hash.slice!('min', 'max', 'exclude_end')
|
|
88
|
+
hash.compact!
|
|
89
|
+
hash.transform_values!(&:mongoize)
|
|
90
|
+
hash.blank? ? nil : hash
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def __mongoize_range__(object)
|
|
94
|
+
hash = {}
|
|
95
|
+
hash['min'] = object.begin.mongoize if object.begin
|
|
96
|
+
hash['max'] = object.end.mongoize if object.end
|
|
66
97
|
if object.respond_to?(:exclude_end?) && object.exclude_end?
|
|
67
|
-
hash
|
|
98
|
+
hash['exclude_end'] = true
|
|
68
99
|
end
|
|
69
100
|
hash
|
|
70
101
|
end
|
|
@@ -12,13 +12,20 @@ module Mongoid
|
|
|
12
12
|
# @example Mongoize the object.
|
|
13
13
|
# Regexp.mongoize(/\A[abc]/)
|
|
14
14
|
#
|
|
15
|
-
# @param [
|
|
15
|
+
# @param [ Object ] object The object to mongoize.
|
|
16
16
|
#
|
|
17
|
-
# @return [ Regexp ] The object mongoized.
|
|
17
|
+
# @return [ Regexp | nil ] The object mongoized or nil.
|
|
18
18
|
def mongoize(object)
|
|
19
|
-
return
|
|
20
|
-
|
|
19
|
+
return if object.nil?
|
|
20
|
+
case object
|
|
21
|
+
when String then ::Regexp.new(object)
|
|
22
|
+
when ::Regexp then object
|
|
23
|
+
when BSON::Regexp::Raw then object.compile
|
|
24
|
+
end
|
|
25
|
+
rescue RegexpError
|
|
26
|
+
nil
|
|
21
27
|
end
|
|
28
|
+
alias :demongoize :mongoize
|
|
22
29
|
end
|
|
23
30
|
end
|
|
24
31
|
end
|
|
@@ -10,7 +10,7 @@ module Mongoid
|
|
|
10
10
|
# @example Mongoize the object.
|
|
11
11
|
# set.mongoize
|
|
12
12
|
#
|
|
13
|
-
# @return [ Array ] The object mongoized.
|
|
13
|
+
# @return [ Array | nil ] The object mongoized or nil.
|
|
14
14
|
def mongoize
|
|
15
15
|
::Set.mongoize(self)
|
|
16
16
|
end
|
|
@@ -26,7 +26,10 @@ module Mongoid
|
|
|
26
26
|
#
|
|
27
27
|
# @return [ Set ] The set.
|
|
28
28
|
def demongoize(object)
|
|
29
|
-
|
|
29
|
+
case object
|
|
30
|
+
when ::Set then object
|
|
31
|
+
when ::Array then ::Set.new(object)
|
|
32
|
+
end
|
|
30
33
|
end
|
|
31
34
|
|
|
32
35
|
# Turn the object from the ruby type we deal with to a Mongo friendly
|
|
@@ -37,9 +40,13 @@ module Mongoid
|
|
|
37
40
|
#
|
|
38
41
|
# @param [ Set ] object The object to mongoize.
|
|
39
42
|
#
|
|
40
|
-
# @return [ Array ] The object mongoized.
|
|
43
|
+
# @return [ Array | nil ] The object mongoized or nil.
|
|
41
44
|
def mongoize(object)
|
|
42
|
-
object.
|
|
45
|
+
return if object.nil?
|
|
46
|
+
case object
|
|
47
|
+
when ::Set then ::Array.mongoize(object.to_a).uniq
|
|
48
|
+
when ::Array then ::Array.mongoize(object).uniq
|
|
49
|
+
end
|
|
43
50
|
end
|
|
44
51
|
end
|
|
45
52
|
end
|
|
@@ -149,18 +149,6 @@ module Mongoid
|
|
|
149
149
|
|
|
150
150
|
module ClassMethods
|
|
151
151
|
|
|
152
|
-
# Convert the object from its mongo friendly ruby type to this type.
|
|
153
|
-
#
|
|
154
|
-
# @example Demongoize the object.
|
|
155
|
-
# String.demongoize(object)
|
|
156
|
-
#
|
|
157
|
-
# @param [ Object ] object The object to demongoize.
|
|
158
|
-
#
|
|
159
|
-
# @return [ String ] The object.
|
|
160
|
-
def demongoize(object)
|
|
161
|
-
object.try(:to_s)
|
|
162
|
-
end
|
|
163
|
-
|
|
164
152
|
# Turn the object from the ruby type we deal with to a Mongo friendly
|
|
165
153
|
# type.
|
|
166
154
|
#
|
|
@@ -171,8 +159,9 @@ module Mongoid
|
|
|
171
159
|
#
|
|
172
160
|
# @return [ String ] The object mongoized.
|
|
173
161
|
def mongoize(object)
|
|
174
|
-
|
|
162
|
+
object.try(:to_s)
|
|
175
163
|
end
|
|
164
|
+
alias :demongoize :mongoize
|
|
176
165
|
end
|
|
177
166
|
end
|
|
178
167
|
end
|
|
@@ -16,18 +16,6 @@ module Mongoid
|
|
|
16
16
|
|
|
17
17
|
module ClassMethods
|
|
18
18
|
|
|
19
|
-
# Convert the object from its mongo friendly ruby type to this type.
|
|
20
|
-
#
|
|
21
|
-
# @example Demongoize the object.
|
|
22
|
-
# Symbol.demongoize(object)
|
|
23
|
-
#
|
|
24
|
-
# @param [ Object ] object The object to demongoize.
|
|
25
|
-
#
|
|
26
|
-
# @return [ Symbol ] The object.
|
|
27
|
-
def demongoize(object)
|
|
28
|
-
object.try(:to_sym)
|
|
29
|
-
end
|
|
30
|
-
|
|
31
19
|
# Turn the object from the ruby type we deal with to a Mongo friendly
|
|
32
20
|
# type.
|
|
33
21
|
#
|
|
@@ -36,10 +24,11 @@ module Mongoid
|
|
|
36
24
|
#
|
|
37
25
|
# @param [ Object ] object The object to mongoize.
|
|
38
26
|
#
|
|
39
|
-
# @return [ Symbol ] The object mongoized.
|
|
27
|
+
# @return [ Symbol | nil ] The object mongoized or nil.
|
|
40
28
|
def mongoize(object)
|
|
41
|
-
|
|
29
|
+
object.try(:to_sym)
|
|
42
30
|
end
|
|
31
|
+
alias :demongoize :mongoize
|
|
43
32
|
end
|
|
44
33
|
end
|
|
45
34
|
end
|