mongoid-multi-db 3.0.0
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 +615 -0
- data/LICENSE +20 -0
- data/README.md +62 -0
- data/Rakefile +49 -0
- data/lib/config/locales/bg.yml +54 -0
- data/lib/config/locales/de.yml +54 -0
- data/lib/config/locales/en-GB.yml +55 -0
- data/lib/config/locales/en.yml +55 -0
- data/lib/config/locales/es.yml +52 -0
- data/lib/config/locales/fr.yml +55 -0
- data/lib/config/locales/hi.yml +46 -0
- data/lib/config/locales/hu.yml +57 -0
- data/lib/config/locales/id.yml +55 -0
- data/lib/config/locales/it.yml +52 -0
- data/lib/config/locales/ja.yml +50 -0
- data/lib/config/locales/kr.yml +47 -0
- data/lib/config/locales/nl.yml +52 -0
- data/lib/config/locales/pl.yml +52 -0
- data/lib/config/locales/pt-BR.yml +53 -0
- data/lib/config/locales/pt.yml +53 -0
- data/lib/config/locales/ro.yml +59 -0
- data/lib/config/locales/ru.yml +54 -0
- data/lib/config/locales/sv.yml +53 -0
- data/lib/config/locales/vi.yml +55 -0
- data/lib/config/locales/zh-CN.yml +46 -0
- data/lib/mongoid.rb +148 -0
- data/lib/mongoid/atomic.rb +230 -0
- data/lib/mongoid/atomic/modifiers.rb +243 -0
- data/lib/mongoid/atomic/paths.rb +3 -0
- data/lib/mongoid/atomic/paths/embedded.rb +43 -0
- data/lib/mongoid/atomic/paths/embedded/many.rb +44 -0
- data/lib/mongoid/atomic/paths/embedded/one.rb +43 -0
- data/lib/mongoid/atomic/paths/root.rb +40 -0
- data/lib/mongoid/attributes.rb +234 -0
- data/lib/mongoid/attributes/processing.rb +146 -0
- data/lib/mongoid/callbacks.rb +135 -0
- data/lib/mongoid/collection.rb +153 -0
- data/lib/mongoid/collection_proxy.rb +59 -0
- data/lib/mongoid/collections.rb +120 -0
- data/lib/mongoid/collections/master.rb +45 -0
- data/lib/mongoid/collections/operations.rb +44 -0
- data/lib/mongoid/collections/retry.rb +46 -0
- data/lib/mongoid/components.rb +96 -0
- data/lib/mongoid/config.rb +347 -0
- data/lib/mongoid/config/database.rb +186 -0
- data/lib/mongoid/config/replset_database.rb +82 -0
- data/lib/mongoid/connection_proxy.rb +30 -0
- data/lib/mongoid/contexts.rb +25 -0
- data/lib/mongoid/contexts/enumerable.rb +288 -0
- data/lib/mongoid/contexts/enumerable/sort.rb +43 -0
- data/lib/mongoid/contexts/mongo.rb +409 -0
- data/lib/mongoid/copyable.rb +48 -0
- data/lib/mongoid/criteria.rb +418 -0
- data/lib/mongoid/criterion/builder.rb +34 -0
- data/lib/mongoid/criterion/complex.rb +84 -0
- data/lib/mongoid/criterion/creational.rb +34 -0
- data/lib/mongoid/criterion/exclusion.rb +108 -0
- data/lib/mongoid/criterion/inclusion.rb +305 -0
- data/lib/mongoid/criterion/inspection.rb +22 -0
- data/lib/mongoid/criterion/optional.rb +232 -0
- data/lib/mongoid/criterion/selector.rb +153 -0
- data/lib/mongoid/cursor.rb +86 -0
- data/lib/mongoid/database_proxy.rb +97 -0
- data/lib/mongoid/default_scope.rb +36 -0
- data/lib/mongoid/dirty.rb +110 -0
- data/lib/mongoid/document.rb +280 -0
- data/lib/mongoid/errors.rb +17 -0
- data/lib/mongoid/errors/callback.rb +26 -0
- data/lib/mongoid/errors/document_not_found.rb +28 -0
- data/lib/mongoid/errors/eager_load.rb +25 -0
- data/lib/mongoid/errors/invalid_collection.rb +18 -0
- data/lib/mongoid/errors/invalid_database.rb +19 -0
- data/lib/mongoid/errors/invalid_field.rb +18 -0
- data/lib/mongoid/errors/invalid_find.rb +19 -0
- data/lib/mongoid/errors/invalid_options.rb +28 -0
- data/lib/mongoid/errors/invalid_time.rb +25 -0
- data/lib/mongoid/errors/invalid_type.rb +25 -0
- data/lib/mongoid/errors/mixed_relations.rb +37 -0
- data/lib/mongoid/errors/mongoid_error.rb +26 -0
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +20 -0
- data/lib/mongoid/errors/unsaved_document.rb +23 -0
- data/lib/mongoid/errors/unsupported_version.rb +20 -0
- data/lib/mongoid/errors/validations.rb +23 -0
- data/lib/mongoid/extensions.rb +82 -0
- data/lib/mongoid/extensions/array/deletion.rb +29 -0
- data/lib/mongoid/extensions/false_class/equality.rb +26 -0
- data/lib/mongoid/extensions/hash/criteria_helpers.rb +45 -0
- data/lib/mongoid/extensions/hash/scoping.rb +25 -0
- data/lib/mongoid/extensions/integer/checks.rb +23 -0
- data/lib/mongoid/extensions/nil/collectionization.rb +23 -0
- data/lib/mongoid/extensions/object/checks.rb +29 -0
- data/lib/mongoid/extensions/object/reflections.rb +48 -0
- data/lib/mongoid/extensions/object/substitutable.rb +15 -0
- data/lib/mongoid/extensions/object/yoda.rb +44 -0
- data/lib/mongoid/extensions/object_id/conversions.rb +60 -0
- data/lib/mongoid/extensions/proc/scoping.rb +25 -0
- data/lib/mongoid/extensions/string/checks.rb +36 -0
- data/lib/mongoid/extensions/string/conversions.rb +22 -0
- data/lib/mongoid/extensions/string/inflections.rb +118 -0
- data/lib/mongoid/extensions/symbol/checks.rb +23 -0
- data/lib/mongoid/extensions/symbol/inflections.rb +66 -0
- data/lib/mongoid/extensions/true_class/equality.rb +26 -0
- data/lib/mongoid/extras.rb +31 -0
- data/lib/mongoid/factory.rb +46 -0
- data/lib/mongoid/fields.rb +332 -0
- data/lib/mongoid/fields/mappings.rb +41 -0
- data/lib/mongoid/fields/serializable.rb +201 -0
- data/lib/mongoid/fields/serializable/array.rb +49 -0
- data/lib/mongoid/fields/serializable/big_decimal.rb +42 -0
- data/lib/mongoid/fields/serializable/bignum.rb +10 -0
- data/lib/mongoid/fields/serializable/binary.rb +11 -0
- data/lib/mongoid/fields/serializable/boolean.rb +43 -0
- data/lib/mongoid/fields/serializable/date.rb +51 -0
- data/lib/mongoid/fields/serializable/date_time.rb +28 -0
- data/lib/mongoid/fields/serializable/fixnum.rb +10 -0
- data/lib/mongoid/fields/serializable/float.rb +32 -0
- data/lib/mongoid/fields/serializable/foreign_keys/array.rb +42 -0
- data/lib/mongoid/fields/serializable/foreign_keys/object.rb +47 -0
- data/lib/mongoid/fields/serializable/hash.rb +11 -0
- data/lib/mongoid/fields/serializable/integer.rb +44 -0
- data/lib/mongoid/fields/serializable/localized.rb +41 -0
- data/lib/mongoid/fields/serializable/nil_class.rb +38 -0
- data/lib/mongoid/fields/serializable/object.rb +11 -0
- data/lib/mongoid/fields/serializable/object_id.rb +31 -0
- data/lib/mongoid/fields/serializable/range.rb +42 -0
- data/lib/mongoid/fields/serializable/set.rb +42 -0
- data/lib/mongoid/fields/serializable/string.rb +27 -0
- data/lib/mongoid/fields/serializable/symbol.rb +27 -0
- data/lib/mongoid/fields/serializable/time.rb +23 -0
- data/lib/mongoid/fields/serializable/time_with_zone.rb +23 -0
- data/lib/mongoid/fields/serializable/timekeeping.rb +106 -0
- data/lib/mongoid/finders.rb +152 -0
- data/lib/mongoid/hierarchy.rb +120 -0
- data/lib/mongoid/identity.rb +92 -0
- data/lib/mongoid/identity_map.rb +119 -0
- data/lib/mongoid/indexes.rb +54 -0
- data/lib/mongoid/inspection.rb +54 -0
- data/lib/mongoid/javascript.rb +20 -0
- data/lib/mongoid/javascript/functions.yml +63 -0
- data/lib/mongoid/json.rb +16 -0
- data/lib/mongoid/keys.rb +144 -0
- data/lib/mongoid/logger.rb +39 -0
- data/lib/mongoid/matchers.rb +32 -0
- data/lib/mongoid/matchers/all.rb +21 -0
- data/lib/mongoid/matchers/and.rb +30 -0
- data/lib/mongoid/matchers/default.rb +70 -0
- data/lib/mongoid/matchers/exists.rb +23 -0
- data/lib/mongoid/matchers/gt.rb +21 -0
- data/lib/mongoid/matchers/gte.rb +21 -0
- data/lib/mongoid/matchers/in.rb +21 -0
- data/lib/mongoid/matchers/lt.rb +21 -0
- data/lib/mongoid/matchers/lte.rb +21 -0
- data/lib/mongoid/matchers/ne.rb +21 -0
- data/lib/mongoid/matchers/nin.rb +21 -0
- data/lib/mongoid/matchers/or.rb +33 -0
- data/lib/mongoid/matchers/size.rb +21 -0
- data/lib/mongoid/matchers/strategies.rb +93 -0
- data/lib/mongoid/multi_database.rb +31 -0
- data/lib/mongoid/multi_parameter_attributes.rb +106 -0
- data/lib/mongoid/named_scope.rb +146 -0
- data/lib/mongoid/nested_attributes.rb +54 -0
- data/lib/mongoid/observer.rb +170 -0
- data/lib/mongoid/paranoia.rb +158 -0
- data/lib/mongoid/persistence.rb +264 -0
- data/lib/mongoid/persistence/atomic.rb +223 -0
- data/lib/mongoid/persistence/atomic/add_to_set.rb +35 -0
- data/lib/mongoid/persistence/atomic/bit.rb +37 -0
- data/lib/mongoid/persistence/atomic/inc.rb +31 -0
- data/lib/mongoid/persistence/atomic/operation.rb +85 -0
- data/lib/mongoid/persistence/atomic/pop.rb +34 -0
- data/lib/mongoid/persistence/atomic/pull.rb +34 -0
- data/lib/mongoid/persistence/atomic/pull_all.rb +34 -0
- data/lib/mongoid/persistence/atomic/push.rb +31 -0
- data/lib/mongoid/persistence/atomic/push_all.rb +31 -0
- data/lib/mongoid/persistence/atomic/rename.rb +31 -0
- data/lib/mongoid/persistence/atomic/sets.rb +30 -0
- data/lib/mongoid/persistence/atomic/unset.rb +28 -0
- data/lib/mongoid/persistence/deletion.rb +32 -0
- data/lib/mongoid/persistence/insertion.rb +41 -0
- data/lib/mongoid/persistence/modification.rb +37 -0
- data/lib/mongoid/persistence/operations.rb +211 -0
- data/lib/mongoid/persistence/operations/embedded/insert.rb +42 -0
- data/lib/mongoid/persistence/operations/embedded/remove.rb +40 -0
- data/lib/mongoid/persistence/operations/insert.rb +34 -0
- data/lib/mongoid/persistence/operations/remove.rb +33 -0
- data/lib/mongoid/persistence/operations/update.rb +64 -0
- data/lib/mongoid/railtie.rb +126 -0
- data/lib/mongoid/railties/database.rake +182 -0
- data/lib/mongoid/railties/document.rb +12 -0
- data/lib/mongoid/relations.rb +144 -0
- data/lib/mongoid/relations/accessors.rb +138 -0
- data/lib/mongoid/relations/auto_save.rb +38 -0
- data/lib/mongoid/relations/binding.rb +26 -0
- data/lib/mongoid/relations/bindings.rb +9 -0
- data/lib/mongoid/relations/bindings/embedded/in.rb +69 -0
- data/lib/mongoid/relations/bindings/embedded/many.rb +93 -0
- data/lib/mongoid/relations/bindings/embedded/one.rb +61 -0
- data/lib/mongoid/relations/bindings/referenced/in.rb +76 -0
- data/lib/mongoid/relations/bindings/referenced/many.rb +54 -0
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +51 -0
- data/lib/mongoid/relations/bindings/referenced/one.rb +58 -0
- data/lib/mongoid/relations/builder.rb +57 -0
- data/lib/mongoid/relations/builders.rb +83 -0
- data/lib/mongoid/relations/builders/embedded/in.rb +29 -0
- data/lib/mongoid/relations/builders/embedded/many.rb +40 -0
- data/lib/mongoid/relations/builders/embedded/one.rb +30 -0
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +110 -0
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +135 -0
- data/lib/mongoid/relations/builders/referenced/in.rb +26 -0
- data/lib/mongoid/relations/builders/referenced/many.rb +27 -0
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +38 -0
- data/lib/mongoid/relations/builders/referenced/one.rb +26 -0
- data/lib/mongoid/relations/cascading.rb +56 -0
- data/lib/mongoid/relations/cascading/delete.rb +19 -0
- data/lib/mongoid/relations/cascading/destroy.rb +26 -0
- data/lib/mongoid/relations/cascading/nullify.rb +18 -0
- data/lib/mongoid/relations/cascading/strategy.rb +26 -0
- data/lib/mongoid/relations/constraint.rb +42 -0
- data/lib/mongoid/relations/conversions.rb +35 -0
- data/lib/mongoid/relations/cyclic.rb +103 -0
- data/lib/mongoid/relations/embedded/atomic.rb +89 -0
- data/lib/mongoid/relations/embedded/atomic/operation.rb +63 -0
- data/lib/mongoid/relations/embedded/atomic/pull.rb +65 -0
- data/lib/mongoid/relations/embedded/atomic/push_all.rb +59 -0
- data/lib/mongoid/relations/embedded/atomic/set.rb +61 -0
- data/lib/mongoid/relations/embedded/atomic/unset.rb +41 -0
- data/lib/mongoid/relations/embedded/in.rb +220 -0
- data/lib/mongoid/relations/embedded/many.rb +560 -0
- data/lib/mongoid/relations/embedded/one.rb +206 -0
- data/lib/mongoid/relations/embedded/sort.rb +31 -0
- data/lib/mongoid/relations/macros.rb +310 -0
- data/lib/mongoid/relations/many.rb +135 -0
- data/lib/mongoid/relations/metadata.rb +919 -0
- data/lib/mongoid/relations/nested_builder.rb +75 -0
- data/lib/mongoid/relations/one.rb +36 -0
- data/lib/mongoid/relations/options.rb +47 -0
- data/lib/mongoid/relations/polymorphic.rb +40 -0
- data/lib/mongoid/relations/proxy.rb +145 -0
- data/lib/mongoid/relations/referenced/batch.rb +72 -0
- data/lib/mongoid/relations/referenced/batch/insert.rb +57 -0
- data/lib/mongoid/relations/referenced/in.rb +262 -0
- data/lib/mongoid/relations/referenced/many.rb +623 -0
- data/lib/mongoid/relations/referenced/many_to_many.rb +396 -0
- data/lib/mongoid/relations/referenced/one.rb +272 -0
- data/lib/mongoid/relations/reflections.rb +62 -0
- data/lib/mongoid/relations/synchronization.rb +153 -0
- data/lib/mongoid/relations/targets.rb +2 -0
- data/lib/mongoid/relations/targets/enumerable.rb +372 -0
- data/lib/mongoid/reloading.rb +91 -0
- data/lib/mongoid/safety.rb +105 -0
- data/lib/mongoid/scope.rb +31 -0
- data/lib/mongoid/serialization.rb +134 -0
- data/lib/mongoid/sharding.rb +61 -0
- data/lib/mongoid/state.rb +97 -0
- data/lib/mongoid/threaded.rb +530 -0
- data/lib/mongoid/threaded/lifecycle.rb +192 -0
- data/lib/mongoid/timestamps.rb +15 -0
- data/lib/mongoid/timestamps/created.rb +24 -0
- data/lib/mongoid/timestamps/timeless.rb +50 -0
- data/lib/mongoid/timestamps/updated.rb +26 -0
- data/lib/mongoid/validations.rb +140 -0
- data/lib/mongoid/validations/associated.rb +46 -0
- data/lib/mongoid/validations/uniqueness.rb +145 -0
- data/lib/mongoid/version.rb +4 -0
- data/lib/mongoid/versioning.rb +185 -0
- data/lib/rack/mongoid.rb +2 -0
- data/lib/rack/mongoid/middleware/identity_map.rb +38 -0
- data/lib/rails/generators/mongoid/config/config_generator.rb +25 -0
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +20 -0
- data/lib/rails/generators/mongoid/model/model_generator.rb +24 -0
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +19 -0
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +17 -0
- data/lib/rails/generators/mongoid/observer/templates/observer.rb.tt +4 -0
- data/lib/rails/generators/mongoid_generator.rb +70 -0
- data/lib/rails/mongoid.rb +91 -0
- metadata +465 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "mongoid/errors/mongoid_error"
|
3
|
+
require "mongoid/errors/callback"
|
4
|
+
require "mongoid/errors/document_not_found"
|
5
|
+
require "mongoid/errors/eager_load"
|
6
|
+
require "mongoid/errors/invalid_collection"
|
7
|
+
require "mongoid/errors/invalid_database"
|
8
|
+
require "mongoid/errors/invalid_field"
|
9
|
+
require "mongoid/errors/invalid_find"
|
10
|
+
require "mongoid/errors/invalid_options"
|
11
|
+
require "mongoid/errors/invalid_time"
|
12
|
+
require "mongoid/errors/invalid_type"
|
13
|
+
require "mongoid/errors/mixed_relations"
|
14
|
+
require "mongoid/errors/too_many_nested_attribute_records"
|
15
|
+
require "mongoid/errors/unsaved_document"
|
16
|
+
require "mongoid/errors/unsupported_version"
|
17
|
+
require "mongoid/errors/validations"
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# This error is raised when calling #save! or .create! on a model when one
|
6
|
+
# of the callbacks returns false.
|
7
|
+
class Callback < MongoidError
|
8
|
+
|
9
|
+
attr_reader :klass, :method
|
10
|
+
|
11
|
+
# Create the new callbacks error.
|
12
|
+
#
|
13
|
+
# @example Create the new callbacks error.
|
14
|
+
# Callbacks.new(Post, :create!)
|
15
|
+
#
|
16
|
+
# @param [ Class ] klass The class of the document.
|
17
|
+
# @param [ Symbol ] method The name of the method.
|
18
|
+
#
|
19
|
+
# @since 2.2.0
|
20
|
+
def initialize(klass, method)
|
21
|
+
@klass, @method = klass, method
|
22
|
+
super(translate("callbacks", { :klass => klass, :method => method }))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Raised when querying the database for a document by a specific id which
|
6
|
+
# does not exist. If multiple ids were passed then it will display all of
|
7
|
+
# those.
|
8
|
+
#
|
9
|
+
# @example Create the error.
|
10
|
+
# DocumentNotFound.new(Person, ["1", "2"])
|
11
|
+
class DocumentNotFound < MongoidError
|
12
|
+
|
13
|
+
attr_reader :klass, :identifiers
|
14
|
+
|
15
|
+
def initialize(klass, ids)
|
16
|
+
@klass = klass
|
17
|
+
@identifiers = ids.is_a?(Array) ? ids.join(", ") : ids
|
18
|
+
|
19
|
+
super(
|
20
|
+
translate(
|
21
|
+
"document_not_found",
|
22
|
+
{ :klass => klass.name, :identifiers => identifiers }
|
23
|
+
)
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# This error is raised when attempting to eager load a many to many
|
6
|
+
# relation.
|
7
|
+
class EagerLoad < MongoidError
|
8
|
+
|
9
|
+
attr_reader :name
|
10
|
+
|
11
|
+
# Create the new eager load error.
|
12
|
+
#
|
13
|
+
# @example Create the new eager load error.
|
14
|
+
# EagerLoad.new(:preferences)
|
15
|
+
#
|
16
|
+
# @param [ Symbol ] name The name of the relation.
|
17
|
+
#
|
18
|
+
# @since 2.2.0
|
19
|
+
def initialize(name)
|
20
|
+
@name = name
|
21
|
+
super(translate("eager_load", { :name => name }))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# This error is raised when trying to access a Mongo::Collection from an
|
6
|
+
# embedded document.
|
7
|
+
#
|
8
|
+
# @example Create the error.
|
9
|
+
# InvalidCollection.new(Address)
|
10
|
+
class InvalidCollection < MongoidError
|
11
|
+
def initialize(klass)
|
12
|
+
super(
|
13
|
+
translate("invalid_collection", { :klass => klass.name })
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Raised when the database connection has not been set up properly, either
|
6
|
+
# by attempting to set an object on the db that is not a +Mongo::DB+, or
|
7
|
+
# not setting anything at all.
|
8
|
+
#
|
9
|
+
# @example Create the error.
|
10
|
+
# InvalidDatabase.new("Not a DB")
|
11
|
+
class InvalidDatabase < MongoidError
|
12
|
+
def initialize(database)
|
13
|
+
super(
|
14
|
+
translate("invalid_database", { :name => database.class.name })
|
15
|
+
)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# This error is raised when trying to create a field that conflicts with
|
6
|
+
# a Mongoid internal attribute or method.
|
7
|
+
#
|
8
|
+
# @example Create the error.
|
9
|
+
# InvalidField.new('collection')
|
10
|
+
class InvalidField < MongoidError
|
11
|
+
def initialize(name)
|
12
|
+
super(
|
13
|
+
translate("invalid_field", { :name => name })
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Raised when invalid arguments are passed to #find.
|
6
|
+
class InvalidFind < MongoidError
|
7
|
+
|
8
|
+
# Create the new invalid find error.
|
9
|
+
#
|
10
|
+
# @example Create the error.
|
11
|
+
# InvalidFind.new
|
12
|
+
#
|
13
|
+
# @since 2.2.0
|
14
|
+
def initialize
|
15
|
+
super(translate("calling_document_find_with_nil_is_invalid", {}))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Raised when invalid options are passed to a relation macro.
|
6
|
+
class InvalidOptions < MongoidError
|
7
|
+
|
8
|
+
# Instantiate the options error.
|
9
|
+
#
|
10
|
+
# @example Create the error.
|
11
|
+
# InvalidOptions.new(:name, :polymorphic, [ :as ])
|
12
|
+
#
|
13
|
+
# @param [ Symbol ] name The name of the relation.
|
14
|
+
# @param [ Symbol ] invalid The invalid option.
|
15
|
+
# @param [ Array<Symbol> ] valid The allowed options.
|
16
|
+
#
|
17
|
+
# @since 2.1.0
|
18
|
+
def initialize(name, invalid, valid)
|
19
|
+
super(
|
20
|
+
translate(
|
21
|
+
"invalid_options",
|
22
|
+
{ :name => name, :invalid => invalid, :valid => valid.join(', ') }
|
23
|
+
)
|
24
|
+
)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# This exception is raised when a bad value is attempted to be converted to
|
6
|
+
# a date or time.
|
7
|
+
class InvalidTime < MongoidError
|
8
|
+
|
9
|
+
attr_reader :klass, :value
|
10
|
+
|
11
|
+
# Create the new invalid date error.
|
12
|
+
#
|
13
|
+
# @example Create the new invalid date error.
|
14
|
+
# InvalidTime.new("this is not a time")
|
15
|
+
#
|
16
|
+
# @param [ Object ] value The value that was attempted.
|
17
|
+
#
|
18
|
+
# @since 2.3.1
|
19
|
+
def initialize(value)
|
20
|
+
@value = value
|
21
|
+
super(translate("invalid_time", { :value => value }))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Raised when trying to get or set a value for a defined field, where the
|
6
|
+
# type of the object does not match the defined field type.
|
7
|
+
#
|
8
|
+
# @example Create the error.
|
9
|
+
# InvalidType.new(Array, "Not an Array")
|
10
|
+
class InvalidType < MongoidError
|
11
|
+
def initialize(klass, value)
|
12
|
+
super(
|
13
|
+
translate(
|
14
|
+
"invalid_type",
|
15
|
+
{
|
16
|
+
:klass => klass.name,
|
17
|
+
:other => value.class.name,
|
18
|
+
:value => value.inspect
|
19
|
+
}
|
20
|
+
)
|
21
|
+
)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# This error is raised when trying to reference an embedded document from
|
6
|
+
# a document in another collection that is not it's parent.
|
7
|
+
#
|
8
|
+
# @example An illegal reference to an embedded document.
|
9
|
+
# class Post
|
10
|
+
# include Mongoid::Document
|
11
|
+
# references_many :addresses
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# class Address
|
15
|
+
# include Mongoid::Document
|
16
|
+
# embedded_in :person
|
17
|
+
# referenced_in :post
|
18
|
+
# end
|
19
|
+
#
|
20
|
+
# @since 2.0.0
|
21
|
+
class MixedRelations < MongoidError
|
22
|
+
|
23
|
+
attr_reader :root_klass, :embedded_klass
|
24
|
+
|
25
|
+
def initialize(root_klass, embedded_klass)
|
26
|
+
@root_klass, @embedded_klass = root_klass, embedded_klass
|
27
|
+
|
28
|
+
super(
|
29
|
+
translate(
|
30
|
+
"mixed_relations",
|
31
|
+
{ :root => root_klass, :embedded => embedded_klass }
|
32
|
+
)
|
33
|
+
)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Default parent Mongoid error for all custom errors. This handles the base
|
6
|
+
# key for the translations and provides the convenience method for
|
7
|
+
# translating the messages.
|
8
|
+
class MongoidError < StandardError
|
9
|
+
BASE_KEY = "mongoid.errors.messages"
|
10
|
+
|
11
|
+
# Given the key of the specific error and the options hash, translate the
|
12
|
+
# message.
|
13
|
+
#
|
14
|
+
# @example Translate the message.
|
15
|
+
# error.translate("errors", :key => value)
|
16
|
+
#
|
17
|
+
# @param [ String ] key The key of the error in the locales.
|
18
|
+
# @param [ Hash ] options The objects to pass to create the message.
|
19
|
+
#
|
20
|
+
# @return [ String ] A localized error message string.
|
21
|
+
def translate(key, options)
|
22
|
+
::I18n.translate("#{BASE_KEY}.#{key}", options)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Mongoid #:nodoc
|
2
|
+
module Errors #:nodoc
|
3
|
+
|
4
|
+
# This error is raised when trying to create set nested records above the
|
5
|
+
# specified :limit
|
6
|
+
#
|
7
|
+
# @example Create the error.
|
8
|
+
# TooManyNestedAttributeRecords.new('association', limit)
|
9
|
+
class TooManyNestedAttributeRecords < MongoidError
|
10
|
+
def initialize(association, limit)
|
11
|
+
super(
|
12
|
+
translate(
|
13
|
+
"too_many_nested_attribute_records",
|
14
|
+
{ :association => association, :limit => limit }
|
15
|
+
)
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Raised when attempting to call create or create! through a
|
6
|
+
# references_many when the parent document has not been saved. This
|
7
|
+
# prevents the child from getting presisted and immediately being orphaned.
|
8
|
+
class UnsavedDocument < MongoidError
|
9
|
+
|
10
|
+
attr_reader :base, :document
|
11
|
+
|
12
|
+
def initialize(base, document)
|
13
|
+
@base, @document = base, document
|
14
|
+
super(
|
15
|
+
translate(
|
16
|
+
"unsaved_document",
|
17
|
+
{ :base => base.class.name, :document => document.class.name }
|
18
|
+
)
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Raised when the database version is not supported by Mongoid.
|
6
|
+
#
|
7
|
+
# @example Create the error.
|
8
|
+
# UnsupportedVersion.new(Mongo::ServerVersion.new("1.3.1"))
|
9
|
+
class UnsupportedVersion < MongoidError
|
10
|
+
def initialize(version)
|
11
|
+
super(
|
12
|
+
translate(
|
13
|
+
"unsupported_version",
|
14
|
+
{ :version => version, :mongo_version => Mongoid::MONGODB_VERSION }
|
15
|
+
)
|
16
|
+
)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
module Mongoid #:nodoc
|
3
|
+
module Errors #:nodoc
|
4
|
+
|
5
|
+
# Raised when a persistence method ending in ! fails validation. The message
|
6
|
+
# will contain the full error messages from the +Document+ in question.
|
7
|
+
#
|
8
|
+
# @example Create the error.
|
9
|
+
# Validations.new(person.errors)
|
10
|
+
class Validations < MongoidError
|
11
|
+
attr_reader :document
|
12
|
+
def initialize(document)
|
13
|
+
@document = document
|
14
|
+
super(
|
15
|
+
translate(
|
16
|
+
"validations",
|
17
|
+
{ :errors => document.errors.full_messages.join(", ") }
|
18
|
+
)
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require "mongoid/extensions/array/deletion"
|
3
|
+
require "mongoid/extensions/false_class/equality"
|
4
|
+
require "mongoid/extensions/hash/criteria_helpers"
|
5
|
+
require "mongoid/extensions/hash/scoping"
|
6
|
+
require "mongoid/extensions/integer/checks"
|
7
|
+
require "mongoid/extensions/nil/collectionization"
|
8
|
+
require "mongoid/extensions/object/checks"
|
9
|
+
require "mongoid/extensions/object/reflections"
|
10
|
+
require "mongoid/extensions/object/substitutable"
|
11
|
+
require "mongoid/extensions/object/yoda"
|
12
|
+
require "mongoid/extensions/proc/scoping"
|
13
|
+
require "mongoid/extensions/string/checks"
|
14
|
+
require "mongoid/extensions/string/conversions"
|
15
|
+
require "mongoid/extensions/string/inflections"
|
16
|
+
require "mongoid/extensions/symbol/checks"
|
17
|
+
require "mongoid/extensions/symbol/inflections"
|
18
|
+
require "mongoid/extensions/true_class/equality"
|
19
|
+
require "mongoid/extensions/object_id/conversions"
|
20
|
+
|
21
|
+
class Array #:nodoc
|
22
|
+
include Mongoid::Extensions::Array::Deletion
|
23
|
+
end
|
24
|
+
|
25
|
+
class Binary; end #:nodoc:
|
26
|
+
unless defined?(Boolean)
|
27
|
+
class Boolean; end
|
28
|
+
end
|
29
|
+
|
30
|
+
class FalseClass #:nodoc
|
31
|
+
include Mongoid::Extensions::FalseClass::Equality
|
32
|
+
end
|
33
|
+
|
34
|
+
class Hash #:nodoc
|
35
|
+
include Mongoid::Extensions::Hash::CriteriaHelpers
|
36
|
+
include Mongoid::Extensions::Hash::Scoping
|
37
|
+
end
|
38
|
+
|
39
|
+
class Integer #:nodoc
|
40
|
+
include Mongoid::Extensions::Integer::Checks
|
41
|
+
end
|
42
|
+
|
43
|
+
class NilClass #:nodoc
|
44
|
+
include Mongoid::Extensions::Nil::Collectionization
|
45
|
+
end
|
46
|
+
|
47
|
+
class Object #:nodoc:
|
48
|
+
include Mongoid::Extensions::Object::Checks
|
49
|
+
include Mongoid::Extensions::Object::Reflections
|
50
|
+
include Mongoid::Extensions::Object::Substitutable
|
51
|
+
include Mongoid::Extensions::Object::Yoda
|
52
|
+
end
|
53
|
+
|
54
|
+
class Proc #:nodoc:
|
55
|
+
include Mongoid::Extensions::Proc::Scoping
|
56
|
+
end
|
57
|
+
|
58
|
+
class String #:nodoc
|
59
|
+
include Mongoid::Extensions::String::Checks
|
60
|
+
include Mongoid::Extensions::String::Conversions
|
61
|
+
include Mongoid::Extensions::String::Inflections
|
62
|
+
end
|
63
|
+
|
64
|
+
class Symbol #:nodoc
|
65
|
+
remove_method :size if instance_methods.include? :size # temporal fix for ruby 1.9
|
66
|
+
include Mongoid::Extensions::Symbol::Checks
|
67
|
+
include Mongoid::Extensions::Symbol::Inflections
|
68
|
+
end
|
69
|
+
|
70
|
+
class TrueClass #:nodoc
|
71
|
+
include Mongoid::Extensions::TrueClass::Equality
|
72
|
+
end
|
73
|
+
|
74
|
+
class BSON::ObjectId #:nodoc
|
75
|
+
extend Mongoid::Extensions::ObjectId::Conversions
|
76
|
+
def as_json(options = nil)
|
77
|
+
to_s
|
78
|
+
end
|
79
|
+
def to_xml(options = nil)
|
80
|
+
ActiveSupport::XmlMini.to_tag(options[:root], self.to_s, options)
|
81
|
+
end
|
82
|
+
end
|