mongoid 2.8.1 → 3.0.0.rc
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.
- data/CHANGELOG.md +802 -58
- data/LICENSE +1 -1
- data/README.md +10 -11
- data/Rakefile +2 -8
- data/lib/config/locales/en.yml +441 -51
- data/lib/mongoid.rb +24 -39
- data/lib/mongoid/atomic.rb +16 -33
- data/lib/mongoid/atomic/modifiers.rb +2 -2
- data/lib/mongoid/atomic/paths/embedded.rb +4 -5
- data/lib/mongoid/atomic/paths/embedded/many.rb +6 -6
- data/lib/mongoid/atomic/paths/embedded/one.rb +5 -5
- data/lib/mongoid/atomic/paths/root.rb +4 -5
- data/lib/mongoid/attributes.rb +95 -32
- data/lib/mongoid/attributes/processing.rb +14 -10
- data/lib/mongoid/attributes/readonly.rb +56 -0
- data/lib/mongoid/callbacks.rb +90 -27
- data/lib/mongoid/collections/retry.rb +2 -3
- data/lib/mongoid/components.rb +11 -23
- data/lib/mongoid/config.rb +87 -233
- data/lib/mongoid/config/environment.rb +5 -6
- data/lib/mongoid/config/inflections.rb +6 -0
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/config/validators.rb +3 -0
- data/lib/mongoid/config/validators/option.rb +25 -0
- data/lib/mongoid/config/validators/session.rb +140 -0
- data/lib/mongoid/contextual.rb +50 -0
- data/lib/mongoid/contextual/aggregable/memory.rb +98 -0
- data/lib/mongoid/contextual/aggregable/mongo.rb +181 -0
- data/lib/mongoid/contextual/atomic.rb +179 -0
- data/lib/mongoid/contextual/command.rb +43 -0
- data/lib/mongoid/contextual/find_and_modify.rb +66 -0
- data/lib/mongoid/contextual/map_reduce.rb +273 -0
- data/lib/mongoid/contextual/memory.rb +383 -0
- data/lib/mongoid/contextual/mongo.rb +543 -0
- data/lib/mongoid/copyable.rb +3 -34
- data/lib/mongoid/criteria.rb +436 -250
- data/lib/mongoid/criterion/inspection.rb +14 -8
- data/lib/mongoid/criterion/scoping.rb +114 -44
- data/lib/mongoid/dirty.rb +152 -67
- data/lib/mongoid/document.rb +69 -50
- data/lib/mongoid/errors.rb +22 -1
- data/lib/mongoid/errors/ambiguous_relationship.rb +51 -0
- data/lib/mongoid/errors/callback.rb +5 -6
- data/lib/mongoid/errors/delete_restriction.rb +29 -0
- data/lib/mongoid/errors/document_not_found.rb +98 -17
- data/lib/mongoid/errors/eager_load.rb +3 -6
- data/lib/mongoid/errors/invalid_collection.rb +3 -3
- data/lib/mongoid/errors/invalid_config_option.rb +27 -0
- data/lib/mongoid/errors/invalid_database.rb +3 -3
- data/lib/mongoid/errors/invalid_field.rb +54 -8
- data/lib/mongoid/errors/invalid_field_option.rb +35 -0
- data/lib/mongoid/errors/invalid_find.rb +3 -3
- data/lib/mongoid/errors/invalid_index.rb +28 -0
- data/lib/mongoid/errors/invalid_options.rb +4 -4
- data/lib/mongoid/errors/invalid_scope.rb +24 -0
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +38 -0
- data/lib/mongoid/errors/invalid_storage_options.rb +27 -0
- data/lib/mongoid/errors/invalid_time.rb +3 -6
- data/lib/mongoid/errors/inverse_not_found.rb +29 -0
- data/lib/mongoid/errors/mixed_relations.rb +4 -9
- data/lib/mongoid/errors/mixed_session_configuration.rb +28 -0
- data/lib/mongoid/errors/mongoid_error.rb +54 -3
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +28 -0
- data/lib/mongoid/errors/no_default_session.rb +23 -0
- data/lib/mongoid/errors/no_environment.rb +3 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +24 -0
- data/lib/mongoid/errors/no_parent.rb +24 -0
- data/lib/mongoid/errors/no_session_config.rb +22 -0
- data/lib/mongoid/errors/no_session_database.rb +27 -0
- data/lib/mongoid/errors/no_session_hosts.rb +27 -0
- data/lib/mongoid/errors/no_sessions_config.rb +20 -0
- data/lib/mongoid/errors/readonly_attribute.rb +25 -0
- data/lib/mongoid/errors/scope_overwrite.rb +4 -4
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +4 -4
- data/lib/mongoid/errors/unknown_attribute.rb +25 -0
- data/lib/mongoid/errors/unsaved_document.rb +4 -8
- data/lib/mongoid/errors/unsupported_javascript.rb +27 -0
- data/lib/mongoid/errors/unsupported_version.rb +4 -4
- data/lib/mongoid/errors/validations.rb +7 -6
- data/lib/mongoid/errors/versioning_not_on_root.rb +23 -0
- data/lib/mongoid/extensions.rb +28 -76
- data/lib/mongoid/extensions/array.rb +127 -0
- data/lib/mongoid/extensions/big_decimal.rb +42 -0
- data/lib/mongoid/extensions/boolean.rb +24 -0
- data/lib/mongoid/extensions/date.rb +70 -0
- data/lib/mongoid/extensions/date_time.rb +68 -0
- data/lib/mongoid/extensions/false_class.rb +26 -0
- data/lib/mongoid/extensions/float.rb +44 -0
- data/lib/mongoid/extensions/hash.rb +91 -0
- data/lib/mongoid/extensions/integer.rb +54 -0
- data/lib/mongoid/extensions/module.rb +28 -0
- data/lib/mongoid/extensions/nil_class.rb +21 -0
- data/lib/mongoid/extensions/object.rb +188 -0
- data/lib/mongoid/extensions/object_id.rb +53 -0
- data/lib/mongoid/extensions/range.rb +55 -0
- data/lib/mongoid/extensions/regexp.rb +27 -0
- data/lib/mongoid/extensions/set.rb +55 -0
- data/lib/mongoid/extensions/string.rb +155 -0
- data/lib/mongoid/extensions/symbol.rb +54 -0
- data/lib/mongoid/extensions/time.rb +78 -0
- data/lib/mongoid/extensions/time_with_zone.rb +55 -0
- data/lib/mongoid/extensions/true_class.rb +26 -0
- data/lib/mongoid/factory.rb +1 -1
- data/lib/mongoid/fields.rb +129 -194
- data/lib/mongoid/fields/foreign_key.rb +134 -0
- data/lib/mongoid/fields/localized.rb +73 -0
- data/lib/mongoid/fields/standard.rb +268 -0
- data/lib/mongoid/fields/validators.rb +2 -0
- data/lib/mongoid/fields/validators/macro.rb +83 -0
- data/lib/mongoid/finders.rb +42 -43
- data/lib/mongoid/hierarchy.rb +25 -14
- data/lib/mongoid/identity_map.rb +31 -19
- data/lib/mongoid/indexes.rb +66 -15
- data/lib/mongoid/indexes/validators/options.rb +80 -0
- data/lib/mongoid/inspection.rb +1 -1
- data/lib/mongoid/javascript.rb +1 -1
- data/lib/mongoid/json.rb +2 -2
- data/lib/mongoid/loggable.rb +69 -0
- data/lib/mongoid/matchers.rb +1 -1
- data/lib/mongoid/matchers/all.rb +7 -8
- data/lib/mongoid/matchers/and.rb +3 -3
- data/lib/mongoid/matchers/default.rb +6 -4
- data/lib/mongoid/matchers/exists.rb +2 -2
- data/lib/mongoid/matchers/gt.rb +2 -2
- data/lib/mongoid/matchers/gte.rb +2 -2
- data/lib/mongoid/matchers/in.rb +3 -7
- data/lib/mongoid/matchers/lt.rb +2 -2
- data/lib/mongoid/matchers/lte.rb +2 -2
- data/lib/mongoid/matchers/ne.rb +2 -2
- data/lib/mongoid/matchers/nin.rb +2 -2
- data/lib/mongoid/matchers/or.rb +2 -2
- data/lib/mongoid/matchers/size.rb +2 -2
- data/lib/mongoid/matchers/strategies.rb +3 -3
- data/lib/mongoid/multi_parameter_attributes.rb +8 -10
- data/lib/mongoid/nested_attributes.rb +17 -9
- data/lib/mongoid/observer.rb +1 -2
- data/lib/mongoid/paranoia.rb +13 -18
- data/lib/mongoid/persistence.rb +43 -39
- data/lib/mongoid/persistence/atomic.rb +2 -2
- data/lib/mongoid/persistence/atomic/add_to_set.rb +5 -9
- data/lib/mongoid/persistence/atomic/bit.rb +5 -7
- data/lib/mongoid/persistence/atomic/inc.rb +5 -7
- data/lib/mongoid/persistence/atomic/operation.rb +45 -6
- data/lib/mongoid/persistence/atomic/pop.rb +5 -7
- data/lib/mongoid/persistence/atomic/pull.rb +5 -7
- data/lib/mongoid/persistence/atomic/pull_all.rb +5 -7
- data/lib/mongoid/persistence/atomic/push.rb +4 -10
- data/lib/mongoid/persistence/atomic/push_all.rb +4 -10
- data/lib/mongoid/persistence/atomic/rename.rb +6 -7
- data/lib/mongoid/persistence/atomic/sets.rb +5 -7
- data/lib/mongoid/persistence/atomic/unset.rb +4 -5
- data/lib/mongoid/persistence/deletion.rb +2 -2
- data/lib/mongoid/persistence/insertion.rb +10 -16
- data/lib/mongoid/persistence/modification.rb +5 -9
- data/lib/mongoid/persistence/operations.rb +6 -19
- data/lib/mongoid/persistence/operations/embedded/insert.rb +7 -6
- data/lib/mongoid/persistence/operations/embedded/remove.rb +5 -5
- data/lib/mongoid/persistence/operations/insert.rb +4 -4
- data/lib/mongoid/persistence/operations/remove.rb +4 -4
- data/lib/mongoid/persistence/operations/update.rb +5 -5
- data/lib/mongoid/railtie.rb +26 -11
- data/lib/mongoid/railties/database.rake +22 -108
- data/lib/mongoid/relations.rb +4 -6
- data/lib/mongoid/relations/accessors.rb +119 -19
- data/lib/mongoid/relations/auto_save.rb +59 -5
- data/lib/mongoid/relations/binding.rb +211 -2
- data/lib/mongoid/relations/bindings/embedded/in.rb +16 -22
- data/lib/mongoid/relations/bindings/embedded/many.rb +9 -50
- data/lib/mongoid/relations/bindings/embedded/one.rb +10 -16
- data/lib/mongoid/relations/bindings/referenced/in.rb +31 -57
- data/lib/mongoid/relations/bindings/referenced/many.rb +8 -20
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +15 -19
- data/lib/mongoid/relations/bindings/referenced/one.rb +10 -24
- data/lib/mongoid/relations/builder.rb +3 -3
- data/lib/mongoid/relations/builders.rb +19 -16
- data/lib/mongoid/relations/builders/embedded/in.rb +5 -5
- data/lib/mongoid/relations/builders/embedded/many.rb +12 -12
- data/lib/mongoid/relations/builders/embedded/one.rb +6 -6
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +8 -8
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +4 -4
- data/lib/mongoid/relations/builders/referenced/in.rb +4 -4
- data/lib/mongoid/relations/builders/referenced/many.rb +5 -5
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +7 -5
- data/lib/mongoid/relations/builders/referenced/one.rb +5 -5
- data/lib/mongoid/relations/cascading.rb +6 -4
- data/lib/mongoid/relations/cascading/delete.rb +3 -5
- data/lib/mongoid/relations/cascading/destroy.rb +3 -3
- data/lib/mongoid/relations/cascading/nullify.rb +3 -3
- data/lib/mongoid/relations/cascading/restrict.rb +37 -0
- data/lib/mongoid/relations/constraint.rb +4 -3
- data/lib/mongoid/relations/conversions.rb +5 -6
- data/lib/mongoid/relations/cyclic.rb +7 -7
- data/lib/mongoid/relations/embedded/batchable.rb +346 -0
- data/lib/mongoid/relations/embedded/in.rb +23 -12
- data/lib/mongoid/relations/embedded/many.rb +99 -161
- data/lib/mongoid/relations/embedded/one.rb +25 -14
- data/lib/mongoid/relations/macros.rb +105 -61
- data/lib/mongoid/relations/many.rb +93 -14
- data/lib/mongoid/relations/metadata.rb +200 -45
- data/lib/mongoid/relations/nested_builder.rb +3 -5
- data/lib/mongoid/relations/one.rb +2 -2
- data/lib/mongoid/relations/options.rb +2 -2
- data/lib/mongoid/relations/polymorphic.rb +9 -9
- data/lib/mongoid/relations/proxy.rb +60 -31
- data/lib/mongoid/relations/referenced/in.rb +40 -15
- data/lib/mongoid/relations/referenced/many.rb +117 -132
- data/lib/mongoid/relations/referenced/many_to_many.rb +101 -46
- data/lib/mongoid/relations/referenced/one.rb +34 -13
- data/lib/mongoid/relations/reflections.rb +3 -3
- data/lib/mongoid/relations/synchronization.rb +19 -23
- data/lib/mongoid/relations/targets/enumerable.rb +86 -57
- data/lib/mongoid/reloading.rb +12 -14
- data/lib/mongoid/scoping.rb +329 -0
- data/lib/mongoid/serialization.rb +8 -27
- data/lib/mongoid/sessions.rb +359 -0
- data/lib/mongoid/sessions/factory.rb +106 -0
- data/lib/mongoid/sessions/mongo_uri.rb +93 -0
- data/lib/mongoid/sessions/validators.rb +2 -0
- data/lib/mongoid/sessions/validators/storage.rb +49 -0
- data/lib/mongoid/sharding.rb +6 -6
- data/lib/mongoid/state.rb +6 -7
- data/lib/mongoid/threaded.rb +167 -59
- data/lib/mongoid/threaded/lifecycle.rb +21 -22
- data/lib/mongoid/threaded/sessions.rb +0 -0
- data/lib/mongoid/timestamps.rb +1 -1
- data/lib/mongoid/timestamps/created.rb +8 -4
- data/lib/mongoid/timestamps/timeless.rb +6 -4
- data/lib/mongoid/timestamps/updated.rb +3 -3
- data/lib/mongoid/unit_of_work.rb +61 -0
- data/lib/mongoid/validations.rb +27 -19
- data/lib/mongoid/validations/associated.rb +2 -2
- data/lib/mongoid/validations/format.rb +2 -2
- data/lib/mongoid/validations/presence.rb +31 -5
- data/lib/mongoid/validations/uniqueness.rb +9 -12
- data/lib/mongoid/version.rb +2 -2
- data/lib/mongoid/versioning.rb +25 -26
- data/lib/rack/mongoid/middleware/identity_map.rb +3 -3
- data/lib/rails/generators/mongoid/config/config_generator.rb +1 -1
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +59 -19
- data/lib/rails/generators/mongoid/model/model_generator.rb +7 -7
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +2 -2
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +4 -4
- data/lib/rails/generators/mongoid_generator.rb +5 -5
- data/lib/rails/mongoid.rb +69 -25
- metadata +110 -137
- checksums.yaml +0 -7
- data/lib/config/locales/bg.yml +0 -61
- data/lib/config/locales/de.yml +0 -61
- data/lib/config/locales/en-GB.yml +0 -64
- data/lib/config/locales/es.yml +0 -59
- data/lib/config/locales/fr.yml +0 -62
- data/lib/config/locales/hi.yml +0 -53
- data/lib/config/locales/hu.yml +0 -64
- data/lib/config/locales/id.yml +0 -62
- data/lib/config/locales/it.yml +0 -59
- data/lib/config/locales/ja.yml +0 -57
- data/lib/config/locales/kr.yml +0 -54
- data/lib/config/locales/nl.yml +0 -61
- data/lib/config/locales/pl.yml +0 -59
- data/lib/config/locales/pt-BR.yml +0 -60
- data/lib/config/locales/pt.yml +0 -60
- data/lib/config/locales/ro.yml +0 -66
- data/lib/config/locales/ru.yml +0 -61
- data/lib/config/locales/sv.yml +0 -60
- data/lib/config/locales/vi.yml +0 -62
- data/lib/config/locales/zh-CN.yml +0 -53
- data/lib/mongoid/collection.rb +0 -157
- data/lib/mongoid/collections.rb +0 -120
- data/lib/mongoid/collections/master.rb +0 -45
- data/lib/mongoid/collections/operations.rb +0 -44
- data/lib/mongoid/config/database.rb +0 -181
- data/lib/mongoid/config/replset_database.rb +0 -80
- data/lib/mongoid/contexts.rb +0 -25
- data/lib/mongoid/contexts/enumerable.rb +0 -313
- data/lib/mongoid/contexts/enumerable/sort.rb +0 -43
- data/lib/mongoid/contexts/mongo.rb +0 -487
- data/lib/mongoid/criterion/builder.rb +0 -34
- data/lib/mongoid/criterion/complex.rb +0 -84
- data/lib/mongoid/criterion/creational.rb +0 -34
- data/lib/mongoid/criterion/exclusion.rb +0 -110
- data/lib/mongoid/criterion/inclusion.rb +0 -290
- data/lib/mongoid/criterion/optional.rb +0 -259
- data/lib/mongoid/criterion/selector.rb +0 -177
- data/lib/mongoid/cursor.rb +0 -88
- data/lib/mongoid/default_scope.rb +0 -36
- data/lib/mongoid/errors/invalid_type.rb +0 -25
- data/lib/mongoid/extensions/array/deep_copy.rb +0 -25
- data/lib/mongoid/extensions/array/deletion.rb +0 -29
- data/lib/mongoid/extensions/false_class/equality.rb +0 -26
- data/lib/mongoid/extensions/hash/criteria_helpers.rb +0 -47
- data/lib/mongoid/extensions/hash/deep_copy.rb +0 -25
- data/lib/mongoid/extensions/hash/scoping.rb +0 -25
- data/lib/mongoid/extensions/integer/checks.rb +0 -23
- data/lib/mongoid/extensions/nil/collectionization.rb +0 -23
- data/lib/mongoid/extensions/object/checks.rb +0 -29
- data/lib/mongoid/extensions/object/deep_copy.rb +0 -21
- data/lib/mongoid/extensions/object/reflections.rb +0 -48
- data/lib/mongoid/extensions/object/substitutable.rb +0 -15
- data/lib/mongoid/extensions/object/yoda.rb +0 -44
- data/lib/mongoid/extensions/object_id/conversions.rb +0 -60
- data/lib/mongoid/extensions/proc/scoping.rb +0 -25
- data/lib/mongoid/extensions/string/checks.rb +0 -36
- data/lib/mongoid/extensions/string/conversions.rb +0 -22
- data/lib/mongoid/extensions/string/inflections.rb +0 -118
- data/lib/mongoid/extensions/symbol/checks.rb +0 -23
- data/lib/mongoid/extensions/symbol/inflections.rb +0 -67
- data/lib/mongoid/extensions/true_class/equality.rb +0 -26
- data/lib/mongoid/extras.rb +0 -31
- data/lib/mongoid/fields/internal/array.rb +0 -77
- data/lib/mongoid/fields/internal/big_decimal.rb +0 -63
- data/lib/mongoid/fields/internal/bignum.rb +0 -10
- data/lib/mongoid/fields/internal/binary.rb +0 -11
- data/lib/mongoid/fields/internal/boolean.rb +0 -58
- data/lib/mongoid/fields/internal/date.rb +0 -51
- data/lib/mongoid/fields/internal/date_time.rb +0 -28
- data/lib/mongoid/fields/internal/false_class.rb +0 -10
- data/lib/mongoid/fields/internal/fixnum.rb +0 -10
- data/lib/mongoid/fields/internal/float.rb +0 -47
- data/lib/mongoid/fields/internal/foreign_keys/array.rb +0 -88
- data/lib/mongoid/fields/internal/foreign_keys/object.rb +0 -56
- data/lib/mongoid/fields/internal/hash.rb +0 -11
- data/lib/mongoid/fields/internal/integer.rb +0 -59
- data/lib/mongoid/fields/internal/localized.rb +0 -62
- data/lib/mongoid/fields/internal/nil_class.rb +0 -53
- data/lib/mongoid/fields/internal/object.rb +0 -11
- data/lib/mongoid/fields/internal/object_id.rb +0 -46
- data/lib/mongoid/fields/internal/range.rb +0 -61
- data/lib/mongoid/fields/internal/set.rb +0 -57
- data/lib/mongoid/fields/internal/string.rb +0 -42
- data/lib/mongoid/fields/internal/symbol.rb +0 -43
- data/lib/mongoid/fields/internal/time.rb +0 -23
- data/lib/mongoid/fields/internal/time_with_zone.rb +0 -23
- data/lib/mongoid/fields/internal/timekeeping.rb +0 -122
- data/lib/mongoid/fields/internal/true_class.rb +0 -10
- data/lib/mongoid/fields/mappings.rb +0 -42
- data/lib/mongoid/fields/serializable.rb +0 -270
- data/lib/mongoid/identity.rb +0 -92
- data/lib/mongoid/keys.rb +0 -144
- data/lib/mongoid/logger.rb +0 -45
- data/lib/mongoid/multi_database.rb +0 -36
- data/lib/mongoid/named_scope.rb +0 -166
- data/lib/mongoid/relations/embedded/atomic.rb +0 -89
- data/lib/mongoid/relations/embedded/atomic/operation.rb +0 -63
- data/lib/mongoid/relations/embedded/atomic/pull.rb +0 -65
- data/lib/mongoid/relations/embedded/atomic/push_all.rb +0 -59
- data/lib/mongoid/relations/embedded/atomic/set.rb +0 -61
- data/lib/mongoid/relations/embedded/atomic/unset.rb +0 -41
- data/lib/mongoid/relations/referenced/batch.rb +0 -73
- data/lib/mongoid/relations/referenced/batch/insert.rb +0 -57
- data/lib/mongoid/safety.rb +0 -105
- data/lib/mongoid/scope.rb +0 -31
@@ -1,59 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Mongoid #:nodoc:
|
3
|
-
module Fields #:nodoc:
|
4
|
-
module Internal #:nodoc:
|
5
|
-
|
6
|
-
# Defines the behaviour for integer fields.
|
7
|
-
class Integer
|
8
|
-
include Serializable
|
9
|
-
|
10
|
-
# Special case to serialize the object.
|
11
|
-
#
|
12
|
-
# @example Convert to a selection.
|
13
|
-
# field.selection(object)
|
14
|
-
#
|
15
|
-
# @param [ Object ] The object to convert.
|
16
|
-
#
|
17
|
-
# @return [ Object ] The converted object.
|
18
|
-
#
|
19
|
-
# @since 2.4.0
|
20
|
-
def selection(object)
|
21
|
-
return object if object.is_a?(::Hash)
|
22
|
-
serialize(object)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Serialize the object from the type defined in the model to a MongoDB
|
26
|
-
# compatible object to store.
|
27
|
-
#
|
28
|
-
# @example Serialize the field.
|
29
|
-
# field.serialize(object)
|
30
|
-
#
|
31
|
-
# @param [ Object ] object The object to cast.
|
32
|
-
#
|
33
|
-
# @return [ Integer ] The converted integer.
|
34
|
-
#
|
35
|
-
# @since 2.1.0
|
36
|
-
def serialize(object)
|
37
|
-
return nil if object.blank?
|
38
|
-
numeric(object) rescue object
|
39
|
-
end
|
40
|
-
|
41
|
-
private
|
42
|
-
|
43
|
-
# Get the numeric value for the provided object.
|
44
|
-
#
|
45
|
-
# @example Get the numeric value.
|
46
|
-
# field.numeric("1120")
|
47
|
-
#
|
48
|
-
# @param [ Object ] object The object to convert.
|
49
|
-
#
|
50
|
-
# @return [ Integer, Float ] The number.
|
51
|
-
#
|
52
|
-
# @since 2.3.0
|
53
|
-
def numeric(object)
|
54
|
-
object.to_s =~ /(^[-+]?[0-9]+$)|(\.0+)$/ ? object.to_i : Float(object)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Mongoid #:nodoc:
|
3
|
-
module Fields #:nodoc:
|
4
|
-
module Internal #:nodoc:
|
5
|
-
|
6
|
-
# Defines the behaviour for localized string fields.
|
7
|
-
class Localized
|
8
|
-
include Serializable
|
9
|
-
|
10
|
-
# Deserialize the object based on the current locale. Will look in the
|
11
|
-
# hash for the current locale.
|
12
|
-
#
|
13
|
-
# @example Get the deserialized value.
|
14
|
-
# field.deserialize({ "en" => "testing" })
|
15
|
-
#
|
16
|
-
# @param [ Hash ] object The hash of translations.
|
17
|
-
#
|
18
|
-
# @return [ String ] The value for the current locale.
|
19
|
-
#
|
20
|
-
# @since 2.3.0
|
21
|
-
def deserialize(object)
|
22
|
-
return nil if object.nil?
|
23
|
-
locale = ::I18n.locale
|
24
|
-
if ::I18n.respond_to?(:fallbacks)
|
25
|
-
object[::I18n.fallbacks[locale].map(&:to_s).find{ |loc| object[loc] }]
|
26
|
-
else
|
27
|
-
object[locale.to_s]
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
# Special case to serialize the object.
|
32
|
-
#
|
33
|
-
# @example Convert to a selection.
|
34
|
-
# field.selection(object)
|
35
|
-
#
|
36
|
-
# @param [ Object ] The object to convert.
|
37
|
-
#
|
38
|
-
# @return [ Object ] The converted object.
|
39
|
-
#
|
40
|
-
# @since 2.4.0
|
41
|
-
def selection(object)
|
42
|
-
return object if object.is_a?(::Hash)
|
43
|
-
serialize(object)
|
44
|
-
end
|
45
|
-
|
46
|
-
# Convert the provided string into a hash for the locale.
|
47
|
-
#
|
48
|
-
# @example Serialize the value.
|
49
|
-
# field.serialize("testing")
|
50
|
-
#
|
51
|
-
# @param [ String ] object The string to convert.
|
52
|
-
#
|
53
|
-
# @return [ Hash ] The locale with string translation.
|
54
|
-
#
|
55
|
-
# @since 2.3.0
|
56
|
-
def serialize(object)
|
57
|
-
{ ::I18n.locale.to_s => object }
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Mongoid #:nodoc:
|
3
|
-
module Fields #:nodoc:
|
4
|
-
module Internal #:nodoc:
|
5
|
-
|
6
|
-
# Defines the behaviour for nil fields.
|
7
|
-
class NilClass
|
8
|
-
include Serializable
|
9
|
-
|
10
|
-
# Deserialize this field from the type stored in MongoDB to the type
|
11
|
-
# defined on the model
|
12
|
-
#
|
13
|
-
# @example Deserialize the field.
|
14
|
-
# field.deserialize(object)
|
15
|
-
#
|
16
|
-
# @param [ Object ] object The object to cast.
|
17
|
-
#
|
18
|
-
# @return [ nil ] Always nil.
|
19
|
-
#
|
20
|
-
# @since 2.1.0
|
21
|
-
def deserialize(object); nil; end
|
22
|
-
|
23
|
-
# Special case to serialize the object.
|
24
|
-
#
|
25
|
-
# @example Convert to a selection.
|
26
|
-
# field.selection(object)
|
27
|
-
#
|
28
|
-
# @param [ Object ] The object to convert.
|
29
|
-
#
|
30
|
-
# @return [ Object ] The converted object.
|
31
|
-
#
|
32
|
-
# @since 2.4.0
|
33
|
-
def selection(object)
|
34
|
-
return object if object.is_a?(::Hash)
|
35
|
-
serialize(object)
|
36
|
-
end
|
37
|
-
|
38
|
-
# Serialize the object from the type defined in the model to a MongoDB
|
39
|
-
# compatible object to store.
|
40
|
-
#
|
41
|
-
# @example Serialize the field.
|
42
|
-
# field.serialize(object)
|
43
|
-
#
|
44
|
-
# @param [ Object ] object The object to cast.
|
45
|
-
#
|
46
|
-
# @return [ nil ] always nil.
|
47
|
-
#
|
48
|
-
# @since 2.1.0
|
49
|
-
def serialize(object); nil; end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Mongoid #:nodoc:
|
3
|
-
module Fields #:nodoc:
|
4
|
-
module Internal #:nodoc:
|
5
|
-
|
6
|
-
# Defines the behaviour for BSON::ObjectId fields.
|
7
|
-
class ObjectId
|
8
|
-
include Serializable
|
9
|
-
|
10
|
-
# Special case to serialize the object.
|
11
|
-
#
|
12
|
-
# @example Convert to a selection.
|
13
|
-
# field.selection(object)
|
14
|
-
#
|
15
|
-
# @param [ Object ] The object to convert.
|
16
|
-
#
|
17
|
-
# @return [ Object ] The converted object.
|
18
|
-
#
|
19
|
-
# @since 2.4.0
|
20
|
-
def selection(object)
|
21
|
-
return object if object.is_a?(::Hash)
|
22
|
-
serialize(object)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Serialize the object from the type defined in the model to a MongoDB
|
26
|
-
# compatible object to store.
|
27
|
-
#
|
28
|
-
# @example Serialize the field.
|
29
|
-
# field.serialize(object)
|
30
|
-
#
|
31
|
-
# @param [ Object ] object The object to cast.
|
32
|
-
#
|
33
|
-
# @return [ BSON::ObjectId ] The converted object id.
|
34
|
-
#
|
35
|
-
# @since 2.1.0
|
36
|
-
def serialize(object)
|
37
|
-
if object.is_a?(::String)
|
38
|
-
BSON::ObjectId.from_string(object) unless object.blank?
|
39
|
-
else
|
40
|
-
object
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Mongoid #:nodoc:
|
3
|
-
module Fields #:nodoc:
|
4
|
-
module Internal #:nodoc:
|
5
|
-
|
6
|
-
# Defines the behaviour for range fields.
|
7
|
-
class Range
|
8
|
-
include Serializable
|
9
|
-
|
10
|
-
# Deserialize this field from the type stored in MongoDB to the type
|
11
|
-
# defined on the model.
|
12
|
-
#
|
13
|
-
# @example Deserialize the field.
|
14
|
-
# field.deserialize(object)
|
15
|
-
#
|
16
|
-
# @param [ Object ] object The object to cast.
|
17
|
-
#
|
18
|
-
# @return [ Range ] The converted range.
|
19
|
-
#
|
20
|
-
# @since 2.1.0
|
21
|
-
def deserialize(object)
|
22
|
-
object.nil? ? nil : ::Range.new(object["min"], object["max"])
|
23
|
-
end
|
24
|
-
|
25
|
-
# Convert the provided object to a Mongoid criteria friendly value. For
|
26
|
-
# ranges this will look for something between the min and max values.
|
27
|
-
#
|
28
|
-
# @example Convert the field.
|
29
|
-
# field.selection(object)
|
30
|
-
#
|
31
|
-
# @param [ Object ] The object to convert.
|
32
|
-
#
|
33
|
-
# @return [ Object ] The converted object.
|
34
|
-
#
|
35
|
-
# @since 2.4.0
|
36
|
-
def selection(object)
|
37
|
-
return object if object.is_a?(::Hash)
|
38
|
-
{
|
39
|
-
"min" => { "$gte" => object.first },
|
40
|
-
"max" => { "$lte" => object.last }
|
41
|
-
}
|
42
|
-
end
|
43
|
-
|
44
|
-
# Serialize the object from the type defined in the model to a MongoDB
|
45
|
-
# compatible object to store.
|
46
|
-
#
|
47
|
-
# @example Serialize the field.
|
48
|
-
# field.serialize(object)
|
49
|
-
#
|
50
|
-
# @param [ Object ] object The object to cast.
|
51
|
-
#
|
52
|
-
# @return [ Hash ] The converted hash.
|
53
|
-
#
|
54
|
-
# @since 2.1.0
|
55
|
-
def serialize(object)
|
56
|
-
object.nil? ? nil : { "min" => object.first, "max" => object.last }
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Mongoid #:nodoc:
|
3
|
-
module Fields #:nodoc:
|
4
|
-
module Internal #:nodoc:
|
5
|
-
|
6
|
-
# Defines the behaviour for set fields.
|
7
|
-
class Set
|
8
|
-
include Serializable
|
9
|
-
|
10
|
-
# Deserialize this field from the type stored in MongoDB to the type
|
11
|
-
# defined on the model.
|
12
|
-
#
|
13
|
-
# @example Deserialize the field.
|
14
|
-
# field.deserialize(object)
|
15
|
-
#
|
16
|
-
# @param [ Object ] object The object to cast.
|
17
|
-
#
|
18
|
-
# @return [ Set ] The converted set.
|
19
|
-
#
|
20
|
-
# @since 2.1.0
|
21
|
-
def deserialize(object)
|
22
|
-
::Set.new(object)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Special case to serialize the object.
|
26
|
-
#
|
27
|
-
# @example Convert to a selection.
|
28
|
-
# field.selection(object)
|
29
|
-
#
|
30
|
-
# @param [ Object ] The object to convert.
|
31
|
-
#
|
32
|
-
# @return [ Object ] The converted object.
|
33
|
-
#
|
34
|
-
# @since 2.4.0
|
35
|
-
def selection(object)
|
36
|
-
return object unless object.is_a?(::Set)
|
37
|
-
serialize(object)
|
38
|
-
end
|
39
|
-
|
40
|
-
# Serialize the object from the type defined in the model to a MongoDB
|
41
|
-
# compatible object to store.
|
42
|
-
#
|
43
|
-
# @example Serialize the field.
|
44
|
-
# field.serialize(object)
|
45
|
-
#
|
46
|
-
# @param [ Object ] object The object to cast.
|
47
|
-
#
|
48
|
-
# @return [ Array ] The converted array.
|
49
|
-
#
|
50
|
-
# @since 2.1.0
|
51
|
-
def serialize(object)
|
52
|
-
object.to_a
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Mongoid #:nodoc:
|
3
|
-
module Fields #:nodoc:
|
4
|
-
module Internal #:nodoc:
|
5
|
-
|
6
|
-
# Defines the behaviour for string fields.
|
7
|
-
class String
|
8
|
-
include Serializable
|
9
|
-
|
10
|
-
# Special case to serialize the object.
|
11
|
-
#
|
12
|
-
# @example Convert to a selection.
|
13
|
-
# field.selection(object)
|
14
|
-
#
|
15
|
-
# @param [ Object ] The object to convert.
|
16
|
-
#
|
17
|
-
# @return [ Object ] The converted object.
|
18
|
-
#
|
19
|
-
# @since 2.4.0
|
20
|
-
def selection(object)
|
21
|
-
return object if object.is_a?(::Hash)
|
22
|
-
serialize(object)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Serialize the object from the type defined in the model to a MongoDB
|
26
|
-
# compatible object to store.
|
27
|
-
#
|
28
|
-
# @example Serialize the field.
|
29
|
-
# field.serialize(object)
|
30
|
-
#
|
31
|
-
# @param [ Object ] object The object to cast.
|
32
|
-
#
|
33
|
-
# @return [ String ] The converted string.
|
34
|
-
#
|
35
|
-
# @since 2.1.0
|
36
|
-
def serialize(object)
|
37
|
-
object.try(:to_s)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
module Mongoid #:nodoc:
|
3
|
-
module Fields #:nodoc:
|
4
|
-
module Internal #:nodoc:
|
5
|
-
|
6
|
-
# Defines the behaviour for symbol fields.
|
7
|
-
class Symbol
|
8
|
-
include Serializable
|
9
|
-
|
10
|
-
# Special case to serialize the object.
|
11
|
-
#
|
12
|
-
# @example Convert to a selection.
|
13
|
-
# field.selection(object)
|
14
|
-
#
|
15
|
-
# @param [ Object ] The object to convert.
|
16
|
-
#
|
17
|
-
# @return [ Object ] The converted object.
|
18
|
-
#
|
19
|
-
# @since 2.4.0
|
20
|
-
def selection(object)
|
21
|
-
return object if object.is_a?(::Hash)
|
22
|
-
serialize(object)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Serialize the object from the type defined in the model to a MongoDB
|
26
|
-
# compatible object to store.
|
27
|
-
#
|
28
|
-
# @example Serialize the field.
|
29
|
-
# field.serialize(object)
|
30
|
-
#
|
31
|
-
# @param [ Object ] object The object to cast.
|
32
|
-
#
|
33
|
-
# @return [ Symbol ] The converted symbol.
|
34
|
-
#
|
35
|
-
# @since 2.1.0
|
36
|
-
def serialize(object)
|
37
|
-
object.blank? ? nil : object.to_sym
|
38
|
-
end
|
39
|
-
alias :deserialize :serialize
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|