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,13 +1,11 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
module Mongoid
|
3
|
-
module Errors
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
4
|
|
5
5
|
# This error is raised when attempting to eager load a many to many
|
6
6
|
# relation.
|
7
7
|
class EagerLoad < MongoidError
|
8
8
|
|
9
|
-
attr_reader :name
|
10
|
-
|
11
9
|
# Create the new eager load error.
|
12
10
|
#
|
13
11
|
# @example Create the new eager load error.
|
@@ -17,8 +15,7 @@ module Mongoid #:nodoc
|
|
17
15
|
#
|
18
16
|
# @since 2.2.0
|
19
17
|
def initialize(name)
|
20
|
-
|
21
|
-
super(translate("eager_load", { :name => name }))
|
18
|
+
super(compose_message("eager_load", { name: name }))
|
22
19
|
end
|
23
20
|
end
|
24
21
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
module Mongoid
|
3
|
-
module Errors
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
4
|
|
5
5
|
# This error is raised when trying to access a Mongo::Collection from an
|
6
6
|
# embedded document.
|
@@ -10,7 +10,7 @@ module Mongoid #:nodoc
|
|
10
10
|
class InvalidCollection < MongoidError
|
11
11
|
def initialize(klass)
|
12
12
|
super(
|
13
|
-
|
13
|
+
compose_message("invalid_collection", { klass: klass.name })
|
14
14
|
)
|
15
15
|
end
|
16
16
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
|
+
|
5
|
+
# This error is raised when a bad configuration option is attempted to be
|
6
|
+
# set.
|
7
|
+
class InvalidConfigOption < MongoidError
|
8
|
+
|
9
|
+
# Create the new error.
|
10
|
+
#
|
11
|
+
# @example Create the new error.
|
12
|
+
# InvalidConfigOption.new(:name, [ :option ])
|
13
|
+
#
|
14
|
+
# @param [ Symbol, String ] name The attempted config option name.
|
15
|
+
#
|
16
|
+
# @since 3.0.0
|
17
|
+
def initialize(name)
|
18
|
+
super(
|
19
|
+
compose_message(
|
20
|
+
"invalid_config_option",
|
21
|
+
{ name: name, options: Config.settings.keys.map(&:inspect).join(", ") }
|
22
|
+
)
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
module Mongoid
|
3
|
-
module Errors
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
4
|
|
5
5
|
# Raised when the database connection has not been set up properly, either
|
6
6
|
# by attempting to set an object on the db that is not a +Mongo::DB+, or
|
@@ -11,7 +11,7 @@ module Mongoid #:nodoc
|
|
11
11
|
class InvalidDatabase < MongoidError
|
12
12
|
def initialize(database)
|
13
13
|
super(
|
14
|
-
|
14
|
+
compose_message("invalid_database", { name: database.class.name })
|
15
15
|
)
|
16
16
|
end
|
17
17
|
end
|
@@ -1,18 +1,64 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
module Mongoid
|
3
|
-
module Errors
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
4
|
|
5
5
|
# This error is raised when trying to create a field that conflicts with
|
6
|
-
#
|
7
|
-
#
|
8
|
-
# @example Create the error.
|
9
|
-
# InvalidField.new('collection')
|
6
|
+
# an already defined method.
|
10
7
|
class InvalidField < MongoidError
|
11
|
-
|
8
|
+
|
9
|
+
# Create the new error.
|
10
|
+
#
|
11
|
+
# @example Create the error.
|
12
|
+
# InvalidField.new(person, :crazy_method_name)
|
13
|
+
#
|
14
|
+
# @param [ Class ] klass The document class.
|
15
|
+
# @param [ Symbol ] name The method name.
|
16
|
+
def initialize(klass, name)
|
12
17
|
super(
|
13
|
-
|
18
|
+
compose_message(
|
19
|
+
"invalid_field",
|
20
|
+
{
|
21
|
+
name: name,
|
22
|
+
origin: origin(klass, name),
|
23
|
+
file: location(klass, name)[0],
|
24
|
+
line: location(klass, name)[1]
|
25
|
+
}
|
26
|
+
)
|
14
27
|
)
|
15
28
|
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
# Get the origin of the method.
|
33
|
+
#
|
34
|
+
# @example Get the originating class or module.
|
35
|
+
# error.origin(Person, :crazy_method_name)
|
36
|
+
#
|
37
|
+
# @param [ Class ] klass The document class.
|
38
|
+
# @param [ Symbol ] name The method name.
|
39
|
+
#
|
40
|
+
# @return [ Class, Module ] The originating class or module.
|
41
|
+
#
|
42
|
+
# @since 3.0.0
|
43
|
+
def origin(klass, name)
|
44
|
+
klass.instance_method(name).owner
|
45
|
+
end
|
46
|
+
|
47
|
+
# Get the location of the method.
|
48
|
+
#
|
49
|
+
# @example Get the location of the method on the filesystem.
|
50
|
+
# error.location(Person, :crazy_method_name)
|
51
|
+
#
|
52
|
+
# @param [ Class ] klass The document class.
|
53
|
+
# @param [ Symbol ] name The method name.
|
54
|
+
#
|
55
|
+
# @return [ Array<String, Integer> ] The location of the method.
|
56
|
+
#
|
57
|
+
# @since 3.0.0
|
58
|
+
def location(klass, name)
|
59
|
+
@location ||=
|
60
|
+
(klass.instance_method(name).source_location || [ "Unknown", 0 ])
|
61
|
+
end
|
16
62
|
end
|
17
63
|
end
|
18
64
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
|
+
|
5
|
+
# This error is raised when trying to create a field that has an invalid
|
6
|
+
# option.
|
7
|
+
class InvalidFieldOption < MongoidError
|
8
|
+
|
9
|
+
# Create the new error.
|
10
|
+
#
|
11
|
+
# @example Create the error.
|
12
|
+
# InvalidFieldOption.new(Model, :name, :localized, [ :localize ])
|
13
|
+
#
|
14
|
+
# @param [ Class ] klass The document class.
|
15
|
+
# @param [ Symbol ] name The method name.
|
16
|
+
# @param [ Symbol ] option The option name.
|
17
|
+
# @param [ Array<Symbol> ] valid All the valid options.
|
18
|
+
#
|
19
|
+
# @since 3.0.0
|
20
|
+
def initialize(klass, name, option, valid)
|
21
|
+
super(
|
22
|
+
compose_message(
|
23
|
+
"invalid_field_option",
|
24
|
+
{
|
25
|
+
name: name,
|
26
|
+
klass: klass,
|
27
|
+
option: option,
|
28
|
+
valid: valid.join(", ")
|
29
|
+
}
|
30
|
+
)
|
31
|
+
)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
module Mongoid
|
3
|
-
module Errors
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
4
|
|
5
5
|
# Raised when invalid arguments are passed to #find.
|
6
6
|
class InvalidFind < MongoidError
|
@@ -12,7 +12,7 @@ module Mongoid #:nodoc
|
|
12
12
|
#
|
13
13
|
# @since 2.2.0
|
14
14
|
def initialize
|
15
|
-
super(
|
15
|
+
super(compose_message("calling_document_find_with_nil_is_invalid", {}))
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
|
+
|
5
|
+
# Raised when an invalid index is defined.
|
6
|
+
class InvalidIndex < MongoidError
|
7
|
+
|
8
|
+
# Create the new error.
|
9
|
+
#
|
10
|
+
# @example Create the error.
|
11
|
+
# InvalidIndex.new(Band, name: 1)
|
12
|
+
#
|
13
|
+
# @param [ Class ] klass The model class.
|
14
|
+
# @param [ Hash ] spec The invalid specification.
|
15
|
+
# @param [ Hash ] options The invalid options.
|
16
|
+
#
|
17
|
+
# @since 3.0.0
|
18
|
+
def initialize(klass, spec, options)
|
19
|
+
super(
|
20
|
+
compose_message(
|
21
|
+
"invalid_index",
|
22
|
+
{ klass: klass.name, spec: spec, options: options }
|
23
|
+
)
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
module Mongoid
|
3
|
-
module Errors
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
4
|
|
5
5
|
# Raised when invalid options are passed to a relation macro.
|
6
6
|
class InvalidOptions < MongoidError
|
@@ -17,9 +17,9 @@ module Mongoid #:nodoc
|
|
17
17
|
# @since 2.1.0
|
18
18
|
def initialize(name, invalid, valid)
|
19
19
|
super(
|
20
|
-
|
20
|
+
compose_message(
|
21
21
|
"invalid_options",
|
22
|
-
{ :
|
22
|
+
{ name: name, invalid: invalid, valid: valid.join(', ') }
|
23
23
|
)
|
24
24
|
)
|
25
25
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
|
+
|
5
|
+
# This error is raised when defining a scope of an invalid type.
|
6
|
+
class InvalidScope < MongoidError
|
7
|
+
|
8
|
+
# Create the error.
|
9
|
+
#
|
10
|
+
# @example Create the error.
|
11
|
+
# InvalidScope.new(Band, {})
|
12
|
+
#
|
13
|
+
# @param [ Class ] klass The model class.
|
14
|
+
# @param [ Object ] value The attempted scope value.
|
15
|
+
#
|
16
|
+
# @since 3.0.0
|
17
|
+
def initialize(klass, value)
|
18
|
+
super(
|
19
|
+
compose_message("invalid_scope", { klass: klass, value: value })
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
|
+
|
5
|
+
# Raised when trying to set a polymorphic "references in" relation to a
|
6
|
+
# model with multiple "references many/one" relations pointing to that
|
7
|
+
# first model.
|
8
|
+
#
|
9
|
+
# @example Invalid setting of a polymorphic relation.
|
10
|
+
# class Face
|
11
|
+
# include Mongoid::Document
|
12
|
+
#
|
13
|
+
# has_one :left_eye, class_name: "Eye", as: :eyeable
|
14
|
+
# has_one :right_eye, class_name: "Eye", as: :eyeable
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# class Eye
|
18
|
+
# include Mongoid::Document
|
19
|
+
#
|
20
|
+
# belongs_to :eyeable, polymorphic: true
|
21
|
+
# end
|
22
|
+
#
|
23
|
+
# eye = Eye.new
|
24
|
+
# face = Face.new
|
25
|
+
# eye.eyeable = face # Raises error
|
26
|
+
|
27
|
+
class InvalidSetPolymorphicRelation < MongoidError
|
28
|
+
|
29
|
+
# Create the new invalid set polymorphic relation error.
|
30
|
+
#
|
31
|
+
# @example Create the error.
|
32
|
+
# InvalidSetPolymorphicRelation.new
|
33
|
+
def initialize(name, klass, other_klass)
|
34
|
+
super(compose_message("invalid_set_polymorphic_relation", { name: name, klass: klass, other_klass: other_klass }))
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
|
+
|
5
|
+
# Raised when options provided to :store_in are invalid.
|
6
|
+
class InvalidStorageOptions < MongoidError
|
7
|
+
|
8
|
+
# Create the new error.
|
9
|
+
#
|
10
|
+
# @example Create the new error.
|
11
|
+
# InvalidStorageOptions.new(:collection_name)
|
12
|
+
#
|
13
|
+
# @param [ Class ] klass The model class.
|
14
|
+
# @param [ Hash, String, Symbol ] options The provided options.
|
15
|
+
#
|
16
|
+
# @since 3.0.0
|
17
|
+
def initialize(klass, options)
|
18
|
+
super(
|
19
|
+
compose_message(
|
20
|
+
"invalid_storage_options",
|
21
|
+
{ klass: klass, options: options }
|
22
|
+
)
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,13 +1,11 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
module Mongoid
|
3
|
-
module Errors
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
4
|
|
5
5
|
# This exception is raised when a bad value is attempted to be converted to
|
6
6
|
# a date or time.
|
7
7
|
class InvalidTime < MongoidError
|
8
8
|
|
9
|
-
attr_reader :klass, :value
|
10
|
-
|
11
9
|
# Create the new invalid date error.
|
12
10
|
#
|
13
11
|
# @example Create the new invalid date error.
|
@@ -17,8 +15,7 @@ module Mongoid #:nodoc
|
|
17
15
|
#
|
18
16
|
# @since 2.3.1
|
19
17
|
def initialize(value)
|
20
|
-
|
21
|
-
super(translate("invalid_time", { :value => value }))
|
18
|
+
super(compose_message("invalid_time", { value: value }))
|
22
19
|
end
|
23
20
|
end
|
24
21
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
|
+
|
5
|
+
# Raised when no inverse_of definition can be found when needed.
|
6
|
+
class InverseNotFound < MongoidError
|
7
|
+
|
8
|
+
# Create then new error.
|
9
|
+
#
|
10
|
+
# @example Create the new error.
|
11
|
+
# InverseNotFound.new(Town, :citizens, Person, :town_id)
|
12
|
+
#
|
13
|
+
# @param [ Class ] base The base class.
|
14
|
+
# @param [ Symbol ] name The name of the relation.
|
15
|
+
# @param [ Class ] The child class.
|
16
|
+
# @param [ Symbol ] inverse The attempted inverse key.
|
17
|
+
#
|
18
|
+
# @since 3.0.0
|
19
|
+
def initialize(base, name, klass, inverse)
|
20
|
+
super(
|
21
|
+
compose_message(
|
22
|
+
"inverse_not_found",
|
23
|
+
{ base: base, name: name, klass: klass, inverse: inverse }
|
24
|
+
)
|
25
|
+
)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
module Mongoid
|
3
|
-
module Errors
|
2
|
+
module Mongoid
|
3
|
+
module Errors
|
4
4
|
|
5
5
|
# This error is raised when trying to reference an embedded document from
|
6
6
|
# a document in another collection that is not it's parent.
|
@@ -19,16 +19,11 @@ module Mongoid #:nodoc
|
|
19
19
|
#
|
20
20
|
# @since 2.0.0
|
21
21
|
class MixedRelations < MongoidError
|
22
|
-
|
23
|
-
attr_reader :root_klass, :embedded_klass
|
24
|
-
|
25
22
|
def initialize(root_klass, embedded_klass)
|
26
|
-
@root_klass, @embedded_klass = root_klass, embedded_klass
|
27
|
-
|
28
23
|
super(
|
29
|
-
|
24
|
+
compose_message(
|
30
25
|
"mixed_relations",
|
31
|
-
{ :
|
26
|
+
{ root: root_klass, embedded: embedded_klass }
|
32
27
|
)
|
33
28
|
)
|
34
29
|
end
|