mongoid 2.4.10 → 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 +843 -9
- data/LICENSE +1 -1
- data/README.md +10 -11
- data/Rakefile +2 -17
- data/lib/config/locales/en.yml +441 -51
- data/lib/mongoid/atomic/modifiers.rb +2 -2
- 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/embedded.rb +4 -5
- data/lib/mongoid/atomic/paths/root.rb +4 -5
- data/lib/mongoid/atomic.rb +16 -9
- data/lib/mongoid/attributes/processing.rb +14 -10
- data/lib/mongoid/attributes/readonly.rb +56 -0
- data/lib/mongoid/attributes.rb +95 -32
- data/lib/mongoid/callbacks.rb +100 -42
- data/lib/mongoid/collections/retry.rb +2 -3
- data/lib/mongoid/components.rb +10 -22
- data/lib/mongoid/config/environment.rb +4 -3
- data/lib/mongoid/config/inflections.rb +6 -0
- data/lib/mongoid/config/options.rb +1 -1
- data/lib/mongoid/config/validators/option.rb +25 -0
- data/lib/mongoid/config/validators/session.rb +140 -0
- data/lib/mongoid/config/validators.rb +3 -0
- data/lib/mongoid/config.rb +87 -233
- 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/contextual.rb +50 -0
- data/lib/mongoid/copyable.rb +2 -2
- data/lib/mongoid/criteria.rb +436 -248
- 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 +68 -49
- 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/errors.rb +22 -1
- 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/extensions.rb +28 -76
- data/lib/mongoid/factory.rb +1 -1
- 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/macro.rb +83 -0
- data/lib/mongoid/fields/validators.rb +2 -0
- data/lib/mongoid/fields.rb +129 -194
- 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/validators/options.rb +80 -0
- data/lib/mongoid/indexes.rb +66 -15
- 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/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/matchers.rb +1 -1
- 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/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/atomic.rb +2 -2
- 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/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/persistence/operations.rb +6 -19
- data/lib/mongoid/persistence.rb +64 -27
- data/lib/mongoid/railtie.rb +26 -11
- data/lib/mongoid/railties/database.rake +22 -108
- 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/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/builders.rb +19 -16
- 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/cascading.rb +6 -4
- 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 -160
- data/lib/mongoid/relations/embedded/one.rb +25 -14
- data/lib/mongoid/relations/macros.rb +105 -60
- data/lib/mongoid/relations/many.rb +93 -14
- data/lib/mongoid/relations/metadata.rb +231 -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 +116 -128
- 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/relations/touchable.rb +32 -0
- data/lib/mongoid/relations.rb +6 -6
- data/lib/mongoid/reloading.rb +12 -14
- data/lib/mongoid/scoping.rb +329 -0
- data/lib/mongoid/serialization.rb +13 -30
- data/lib/mongoid/sessions/factory.rb +106 -0
- data/lib/mongoid/sessions/mongo_uri.rb +93 -0
- data/lib/mongoid/sessions/validators/storage.rb +49 -0
- data/lib/mongoid/sessions/validators.rb +2 -0
- data/lib/mongoid/sessions.rb +359 -0
- data/lib/mongoid/sharding.rb +6 -6
- data/lib/mongoid/state.rb +6 -7
- data/lib/mongoid/threaded/lifecycle.rb +21 -21
- data/lib/mongoid/threaded/sessions.rb +0 -0
- data/lib/mongoid/threaded.rb +167 -59
- 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/timestamps.rb +1 -1
- data/lib/mongoid/unit_of_work.rb +61 -0
- data/lib/mongoid/validations/associated.rb +2 -2
- data/lib/mongoid/validations/format.rb +2 -2
- data/lib/mongoid/validations/presence.rb +34 -4
- data/lib/mongoid/validations/uniqueness.rb +8 -10
- data/lib/mongoid/validations.rb +28 -20
- data/lib/mongoid/version.rb +2 -2
- data/lib/mongoid/versioning.rb +25 -26
- data/lib/mongoid.rb +24 -39
- 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 +92 -154
- 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/master.rb +0 -45
- data/lib/mongoid/collections/operations.rb +0 -44
- data/lib/mongoid/collections.rb +0 -120
- data/lib/mongoid/config/database.rb +0 -181
- data/lib/mongoid/config/replset_database.rb +0 -80
- data/lib/mongoid/contexts/enumerable/sort.rb +0 -43
- data/lib/mongoid/contexts/enumerable.rb +0 -313
- data/lib/mongoid/contexts/mongo.rb +0 -487
- data/lib/mongoid/contexts.rb +0 -25
- 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 -108
- 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 -76
- 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/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/embedded/atomic.rb +0 -89
- data/lib/mongoid/relations/referenced/batch/insert.rb +0 -57
- data/lib/mongoid/relations/referenced/batch.rb +0 -73
- data/lib/mongoid/safety.rb +0 -105
- data/lib/mongoid/scope.rb +0 -31
data/lib/config/locales/pt.yml
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
pt:
|
|
2
|
-
mongoid:
|
|
3
|
-
errors:
|
|
4
|
-
messages:
|
|
5
|
-
taken:
|
|
6
|
-
já está utilizada
|
|
7
|
-
callbacks:
|
|
8
|
-
"Calling %{method} on %{klass} resulted in a false return from a callback."
|
|
9
|
-
document_not_found:
|
|
10
|
-
Nenhum documento encontrado para a classe %{klass} com os id(s) %{identifiers}.
|
|
11
|
-
eager_load:
|
|
12
|
-
"Eager loading :%{name} is not supported due to it being a many-to-many
|
|
13
|
-
or polymorphic belongs_to relation."
|
|
14
|
-
invalid_database:
|
|
15
|
-
A base de dados deverá ser uma Mongo::DB, em vez de %{name}.
|
|
16
|
-
invalid_time:
|
|
17
|
-
"'%{value}' is not a valid Time."
|
|
18
|
-
invalid_type:
|
|
19
|
-
O campo foi definido como %{klass}, mas recebeu uma instância de %{other} com
|
|
20
|
-
o valor %{value}.
|
|
21
|
-
invalid_options:
|
|
22
|
-
"Invalid option :%{invalid} provided to relation :%{name}. Valid options
|
|
23
|
-
are: %{valid}."
|
|
24
|
-
unsupported_version:
|
|
25
|
-
MongoDB %{version} não é suportada, por favor actualize para a
|
|
26
|
-
versão %{mongo_version}.
|
|
27
|
-
validations:
|
|
28
|
-
A validação falhou - %{errors}.
|
|
29
|
-
invalid_collection:
|
|
30
|
-
O acesso à colecção para %{klass} não é permitido porque
|
|
31
|
-
é um documento embebido, por favor aceda à colecção através
|
|
32
|
-
do documento raiz.
|
|
33
|
-
invalid_field:
|
|
34
|
-
Não é permitido definir um campo com o nome %{name}. Não defina
|
|
35
|
-
campos que entrem em conflito com os nomes dos atributos internos e métodos
|
|
36
|
-
do Mongoid. Use Document#instance_methods para consultar esses nomes.
|
|
37
|
-
too_many_nested_attribute_records:
|
|
38
|
-
A aceitação de atributos encadeados para %{association} encontra-se limitada
|
|
39
|
-
a %{limit} registros.
|
|
40
|
-
embedded_in_must_have_inverse_of:
|
|
41
|
-
As opções para uma associação embedded_in devem incluir inverse_of.
|
|
42
|
-
dependent_only_references_one_or_many:
|
|
43
|
-
A opção The dependent => destroy|delete que é fornecida
|
|
44
|
-
é apenas válida para associações references_one ou references_many.
|
|
45
|
-
association_cant_have_inverse_of:
|
|
46
|
-
A definição de inverse_of nesta associação não é permitida. Apenas
|
|
47
|
-
use esta opção em embedded_in ou references_many como lista.
|
|
48
|
-
unsaved_document:
|
|
49
|
-
You cannot call create or create! through a relational association
|
|
50
|
-
relation (%{document}) who's parent (%{base}) is not already saved.
|
|
51
|
-
mixed_relations:
|
|
52
|
-
Referencing a(n) %{embedded} document from the %{root} document via a
|
|
53
|
-
relational association is not allowed since the %{embedded} is embedded.
|
|
54
|
-
no_environment:
|
|
55
|
-
"Mongoid attempted to find the appropriate environment but no Rails.env,
|
|
56
|
-
Sinatra::Base.environment, or RACK_ENV could be found."
|
|
57
|
-
scope_overwrite:
|
|
58
|
-
"Cannot create scope :%{scope_name}, because of existing method
|
|
59
|
-
%{model_name}.%{scope_name}."
|
|
60
|
-
blank_on_locale: "can't be blank in %{in_locale}"
|
data/lib/config/locales/ro.yml
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
ro:
|
|
2
|
-
mongoid:
|
|
3
|
-
errors:
|
|
4
|
-
messages:
|
|
5
|
-
taken:
|
|
6
|
-
este deja folosit
|
|
7
|
-
callbacks:
|
|
8
|
-
"Calling %{method} on %{klass} resulted in a false return from a callback."
|
|
9
|
-
document_not_found:
|
|
10
|
-
Nu există document în clasa %{klass} cu id %{identifiers}.
|
|
11
|
-
eager_load:
|
|
12
|
-
"Eager loading :%{name} is not supported due to it being a many-to-many
|
|
13
|
-
or polymorphic belongs_to relation."
|
|
14
|
-
invalid_database:
|
|
15
|
-
Baza de date ar trebui să fie de tipul Mongo::DB, nu %{name}.
|
|
16
|
-
invalid_time:
|
|
17
|
-
"'%{value}' is not a valid Time."
|
|
18
|
-
invalid_type:
|
|
19
|
-
Câmpul a fost definit ca şi un(o) %{klass}, dar valoarea
|
|
20
|
-
recepţionată %{value} este de clasa %{other}.
|
|
21
|
-
invalid_options:
|
|
22
|
-
"Invalid option :%{invalid} provided to relation :%{name}. Valid options
|
|
23
|
-
are: %{valid}."
|
|
24
|
-
unsupported_version:
|
|
25
|
-
Versiunea MongoDB %{version} nu este suportată.
|
|
26
|
-
Vă rugăm să folosiţi versiunea %{mongo_version}.
|
|
27
|
-
validations:
|
|
28
|
-
Validare nereuşită - %{errors}.
|
|
29
|
-
invalid_collection:
|
|
30
|
-
Accesul la colecţie din clasa %{klass} este interzisă, fiindcă
|
|
31
|
-
este un document încorporat. Vă rugăm accesaţi colecţia din
|
|
32
|
-
documentul rădăcină.
|
|
33
|
-
invalid_field:
|
|
34
|
-
Folosirea denumirii %{name} ptr. un câmp este interzisă. Vă
|
|
35
|
-
rugăm să evitaţi utilizarea acelor cuvinte care intră în conflict
|
|
36
|
-
cu denumirile folosite de proprietăţile sau metodele Mongoid-lui.
|
|
37
|
-
Folosiţi comanda Document#instance_methods pentru a afla care
|
|
38
|
-
sunt acestea.
|
|
39
|
-
too_many_nested_attribute_records:
|
|
40
|
-
În cazul %{association} folosirea atributelor îmbricate este
|
|
41
|
-
limitat la %{limit} înregistrări.
|
|
42
|
-
embedded_in_must_have_inverse_of:
|
|
43
|
-
Folosirea opţiunii inverse_of este obligatorie în cazul
|
|
44
|
-
asociaţiilor de tip embedded_in.
|
|
45
|
-
dependent_only_references_one_or_many:
|
|
46
|
-
Opţiunea dependent => destroy|delete poate fi folosită doar în
|
|
47
|
-
cazul asociaţiilor de tip references_one sau references_many.
|
|
48
|
-
association_cant_have_inverse_of:
|
|
49
|
-
Folosire opţiunii inverse_of la acest tip de asociaţie este
|
|
50
|
-
interzisă. Aceasta poate fi folosită doar la asociaţiile de
|
|
51
|
-
tip embedded_in sau references_many as array.
|
|
52
|
-
calling_document_find_with_nil_is_invalid:
|
|
53
|
-
Folosirea metodei Document#find cu valoarea nil este invalidă.
|
|
54
|
-
unsaved_document:
|
|
55
|
-
You cannot call create or create! through a relational association
|
|
56
|
-
relation (%{document}) who's parent (%{base}) is not already saved.
|
|
57
|
-
mixed_relations:
|
|
58
|
-
Referencing a(n) %{embedded} document from the %{root} document via a
|
|
59
|
-
relational association is not allowed since the %{embedded} is embedded.
|
|
60
|
-
no_environment:
|
|
61
|
-
"Mongoid attempted to find the appropriate environment but no Rails.env,
|
|
62
|
-
Sinatra::Base.environment, or RACK_ENV could be found."
|
|
63
|
-
scope_overwrite:
|
|
64
|
-
"Cannot create scope :%{scope_name}, because of existing method
|
|
65
|
-
%{model_name}.%{scope_name}."
|
|
66
|
-
blank_on_locale: "can't be blank in %{in_locale}"
|
data/lib/config/locales/ru.yml
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
ru:
|
|
2
|
-
mongoid:
|
|
3
|
-
errors:
|
|
4
|
-
messages:
|
|
5
|
-
taken:
|
|
6
|
-
уже занят
|
|
7
|
-
callbacks:
|
|
8
|
-
"Calling %{method} on %{klass} resulted in a false return from a callback."
|
|
9
|
-
document_not_found:
|
|
10
|
-
Документ класса %{klass} с id %{identifiers} не найден.
|
|
11
|
-
eager_load:
|
|
12
|
-
"Eager loading :%{name} is not supported due to it being a many-to-many
|
|
13
|
-
or polymorphic belongs_to relation."
|
|
14
|
-
invalid_database:
|
|
15
|
-
База данных должна быть Mongo::DB, а не %{name}.
|
|
16
|
-
invalid_time:
|
|
17
|
-
"'%{value}' is not a valid Time."
|
|
18
|
-
invalid_type:
|
|
19
|
-
Поле уже было определено в классе %{klass}, но получено как %{other}
|
|
20
|
-
со значением %{value}.
|
|
21
|
-
invalid_options:
|
|
22
|
-
"Invalid option :%{invalid} provided to relation :%{name}. Valid options
|
|
23
|
-
are: %{valid}."
|
|
24
|
-
unsupported_version:
|
|
25
|
-
Версия MongoDB %{version} не поддерживается. Пожалуйста, обновитесь до
|
|
26
|
-
версии %{mongo_version}.
|
|
27
|
-
validations:
|
|
28
|
-
Документ не прошёл валидацию - %{errors}.
|
|
29
|
-
invalid_collection:
|
|
30
|
-
Доступ к коллекции для класса %{klass} запрещён, так как это вложенный
|
|
31
|
-
документ. Пожалуйста, обратитесь к коллекции через родительский документ.
|
|
32
|
-
invalid_field:
|
|
33
|
-
Определение поля с именем %{name} запрещено. Не определяйте поля
|
|
34
|
-
с именами совпадающими с внутренними атрибутами или методами Mongoid.
|
|
35
|
-
Используйте Document#instance_methods для просмотра запрещённых имён.
|
|
36
|
-
too_many_nested_attribute_records:
|
|
37
|
-
Accepting nested attributes для %{association} ограничено
|
|
38
|
-
%{limit} записями.
|
|
39
|
-
embedded_in_must_have_inverse_of:
|
|
40
|
-
Указание опции inverse_of для embedded_in ассоциации обязательно.
|
|
41
|
-
dependent_only_references_one_or_many:
|
|
42
|
-
Опция dependent => destroy|delete доступная только для
|
|
43
|
-
references_one или references_many ассоциаций.
|
|
44
|
-
association_cant_have_inverse_of:
|
|
45
|
-
Опция inverse_of не может использоваться с этой ассоциацией.
|
|
46
|
-
Используйте её с embedded_in или references_many ассоциациями.
|
|
47
|
-
calling_document_find_with_nil_is_invalid:
|
|
48
|
-
Вызов Document#find с nil запрещён
|
|
49
|
-
unsaved_document:
|
|
50
|
-
Вызов методов create или create! запрещён у реляционной ассоциации
|
|
51
|
-
(%{document}), у которой родитель (%{base}) не сохранён.
|
|
52
|
-
mixed_relations:
|
|
53
|
-
Referencing a(n) %{embedded} document from the %{root} document via a
|
|
54
|
-
relational association is not allowed since the %{embedded} is embedded.
|
|
55
|
-
no_environment:
|
|
56
|
-
"Mongoid attempted to find the appropriate environment but no Rails.env,
|
|
57
|
-
Sinatra::Base.environment, or RACK_ENV could be found."
|
|
58
|
-
scope_overwrite:
|
|
59
|
-
"Cannot create scope :%{scope_name}, because of existing method
|
|
60
|
-
%{model_name}.%{scope_name}."
|
|
61
|
-
blank_on_locale: "can't be blank in %{in_locale}"
|
data/lib/config/locales/sv.yml
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
sv:
|
|
2
|
-
mongoid:
|
|
3
|
-
errors:
|
|
4
|
-
messages:
|
|
5
|
-
taken:
|
|
6
|
-
har redan använts
|
|
7
|
-
callbacks:
|
|
8
|
-
"Calling %{method} on %{klass} resulted in a false return from a callback."
|
|
9
|
-
document_not_found:
|
|
10
|
-
Inget dokument kunde hittas för klass %{klass} med id %{identifiers}.
|
|
11
|
-
eager_load:
|
|
12
|
-
"Eager loading :%{name} is not supported due to it being a many-to-many
|
|
13
|
-
or polymorphic belongs_to relation."
|
|
14
|
-
invalid_database:
|
|
15
|
-
Databasen bör vara Mongo::DB, inte %{name}.
|
|
16
|
-
invalid_time:
|
|
17
|
-
"'%{value}' is not a valid Time."
|
|
18
|
-
invalid_type:
|
|
19
|
-
Fältet var definerat som %{klass}, men fick %{other} med
|
|
20
|
-
värdet %{value}.
|
|
21
|
-
invalid_options:
|
|
22
|
-
"Invalid option :%{invalid} provided to relation :%{name}. Valid options
|
|
23
|
-
are: %{valid}."
|
|
24
|
-
unsupported_version:
|
|
25
|
-
MongoDB %{version} stöds ej, vänligen upgradera
|
|
26
|
-
till %{mongo_version}.
|
|
27
|
-
validations:
|
|
28
|
-
Validering misslyckades - %{errors}.
|
|
29
|
-
invalid_collection:
|
|
30
|
-
Tillgång till kollektionen för %{klass} är inte tillåten eftersom den
|
|
31
|
-
är ett inbäddat dokument, vänligen accessa kollektionen från
|
|
32
|
-
rotdokumentet.
|
|
33
|
-
invalid_field:
|
|
34
|
-
Att definera ett fält med namnet %{name} är inte tillåtet. Definera inte
|
|
35
|
-
fält som är i konflikt med Mongoids interna attribut eller metod
|
|
36
|
-
namn. Använd Document#instance_methods för att se vilka namn detta innefattar.
|
|
37
|
-
too_many_nested_attribute_records:
|
|
38
|
-
Acceptans av nästlade attribut för %{association} är begränsat
|
|
39
|
-
till %{limit} register.
|
|
40
|
-
embedded_in_must_have_inverse_of:
|
|
41
|
-
Alternativ för en embedded_in association måste innehålla inverse_of.
|
|
42
|
-
dependent_only_references_one_or_many:
|
|
43
|
-
Alternativet dependent => destroy|delete som angavs
|
|
44
|
-
är endast giltigt för references_one eller references_many associationer.
|
|
45
|
-
association_cant_have_inverse_of:
|
|
46
|
-
Att definera inverse_of på denna association är inte tillåtet. Använd
|
|
47
|
-
endast detta alternativ på embedded_in eller references_many as array.
|
|
48
|
-
unsaved_document:
|
|
49
|
-
You cannot call create or create! through a relational association
|
|
50
|
-
relation (%{document}) who's parent (%{base}) is not already saved.
|
|
51
|
-
mixed_relations:
|
|
52
|
-
Referencing a(n) %{embedded} document from the %{root} document via a
|
|
53
|
-
relational association is not allowed since the %{embedded} is embedded.
|
|
54
|
-
no_environment:
|
|
55
|
-
"Mongoid attempted to find the appropriate environment but no Rails.env,
|
|
56
|
-
Sinatra::Base.environment, or RACK_ENV could be found."
|
|
57
|
-
scope_overwrite:
|
|
58
|
-
"Cannot create scope :%{scope_name}, because of existing method
|
|
59
|
-
%{model_name}.%{scope_name}."
|
|
60
|
-
blank_on_locale: "can't be blank in %{in_locale}"
|
data/lib/config/locales/vi.yml
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
vi:
|
|
2
|
-
mongoid:
|
|
3
|
-
errors:
|
|
4
|
-
messages:
|
|
5
|
-
taken:
|
|
6
|
-
đã bị lấy
|
|
7
|
-
callbacks:
|
|
8
|
-
"Calling %{method} on %{klass} resulted in a false return from a callback."
|
|
9
|
-
document_not_found:
|
|
10
|
-
Không tìm thấy văn bản cho lớp %{klass} với định danh %{identifiers}.
|
|
11
|
-
eager_load:
|
|
12
|
-
"Eager loading :%{name} is not supported due to it being a many-to-many
|
|
13
|
-
or polymorphic belongs_to relation."
|
|
14
|
-
invalid_database:
|
|
15
|
-
Cơ sở dữ liệu nên là Mongo::DB, không phải %{name}.
|
|
16
|
-
invalid_time:
|
|
17
|
-
"'%{value}' is not a valid Time."
|
|
18
|
-
invalid_type:
|
|
19
|
-
Trường được định nghĩa là một %{klass}, nhưng nhận được %{other} với
|
|
20
|
-
giá trị %{value}.
|
|
21
|
-
invalid_options:
|
|
22
|
-
"Invalid option :%{invalid} provided to relation :%{name}. Valid options
|
|
23
|
-
are: %{valid}."
|
|
24
|
-
unsupported_version:
|
|
25
|
-
MongoDB %{version} không được hỗ trợ, xin vui lòng nâng cấp
|
|
26
|
-
lên %{mongo_version}.
|
|
27
|
-
validations:
|
|
28
|
-
Kiểm định không thành công - %{errors}.
|
|
29
|
-
invalid_collection:
|
|
30
|
-
Không được phép truy cập tập văn bản cuả %{klass} vì đây
|
|
31
|
-
là một văn bản nhúng, xin vui lòng truy cập tập văn bản từ
|
|
32
|
-
văn bản gốc.
|
|
33
|
-
invalid_field:
|
|
34
|
-
Không được phép định nghĩa tên trường là %{name}. Không định nghĩa
|
|
35
|
-
tên trường trùng với các thuộc tính có sẵn hoặc các tên hàm cuả Mongoid.
|
|
36
|
-
Sử dụng Use Document#instance_methods để xem danh sách tên đã được dùng.
|
|
37
|
-
too_many_nested_attribute_records:
|
|
38
|
-
Số lượng các thuộc tính lồng cho %{association} bị giới hạn
|
|
39
|
-
ở %{limit} bản ghi.
|
|
40
|
-
embedded_in_must_have_inverse_of:
|
|
41
|
-
Phải cho thêm inverse_of vào lực chọn cuả kết hợp embedded_in.
|
|
42
|
-
dependent_only_references_one_or_many:
|
|
43
|
-
Lựa chọn dependent => destroy|delete
|
|
44
|
-
chỉ có hiệu lực với kết hợp references_one hoặc references_many.
|
|
45
|
-
association_cant_have_inverse_of:
|
|
46
|
-
Không được phép định nghĩa inverse_of cho kết hợp này. Chỉ
|
|
47
|
-
sử dụng lựa chọn này cho embedded_in or references_many as array.
|
|
48
|
-
calling_document_find_with_nil_is_invalid:
|
|
49
|
-
Không được phép gọi Document#find với giá trị nil
|
|
50
|
-
unsaved_document:
|
|
51
|
-
Bạn không được gọi create hoặc create! thông qua một quan hệ kết hợp
|
|
52
|
-
mà văn bản gốc (%{base}) chưa được lưu.
|
|
53
|
-
mixed_relations:
|
|
54
|
-
Không được phép tham chiếu một văn bản %{embedded} từ văn bản %{root} thông qua một
|
|
55
|
-
quan hệ kết hợp vì %{embedded} là kiểu nhúng.
|
|
56
|
-
no_environment:
|
|
57
|
-
"Mongoid attempted to find the appropriate environment but no Rails.env,
|
|
58
|
-
Sinatra::Base.environment, or RACK_ENV could be found."
|
|
59
|
-
scope_overwrite:
|
|
60
|
-
"Cannot create scope :%{scope_name}, because of existing method
|
|
61
|
-
%{model_name}.%{scope_name}."
|
|
62
|
-
blank_on_locale: "can't be blank in %{in_locale}"
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
zh-CN:
|
|
2
|
-
mongoid:
|
|
3
|
-
errors:
|
|
4
|
-
messages:
|
|
5
|
-
blank:
|
|
6
|
-
不能为空
|
|
7
|
-
callbacks:
|
|
8
|
-
"Calling %{method} on %{klass} resulted in a false return from a callback."
|
|
9
|
-
taken:
|
|
10
|
-
已占用
|
|
11
|
-
document_not_found:
|
|
12
|
-
没有发现类是%{klass}id(s)是%{identifiers}的文档
|
|
13
|
-
eager_load:
|
|
14
|
-
"Eager loading :%{name} is not supported due to it being a many-to-many
|
|
15
|
-
or polymorphic belongs_to relation."
|
|
16
|
-
invalid_database:
|
|
17
|
-
数据库应该是Mongo::DB,而不是%{name}.
|
|
18
|
-
invalid_time:
|
|
19
|
-
"'%{value}' is not a valid Time."
|
|
20
|
-
invalid_type:
|
|
21
|
-
在类%{klass}中定义了字段,实际值是%{value}的%{other}.
|
|
22
|
-
invalid_options:
|
|
23
|
-
"Invalid option :%{invalid} provided to relation :%{name}. Valid options
|
|
24
|
-
are: %{valid}."
|
|
25
|
-
unsupported_version:
|
|
26
|
-
MongoDB %{version} 版本已过期,请升级到 %{mongo_version}.
|
|
27
|
-
validations:
|
|
28
|
-
校验失败 - %{errors}.
|
|
29
|
-
invalid_collection:
|
|
30
|
-
不允许直接访问嵌入式的集合%{klass} , 请从文档的根访问集合.
|
|
31
|
-
invalid_field:
|
|
32
|
-
字段的名字不允许为 %{name}. 你不应该定义跟Mongoid内部属性或者方法相同的名字,详细请看Use Document#instance_methods.
|
|
33
|
-
too_many_nested_attribute_records:
|
|
34
|
-
被关联的%{association} 嵌入式属性不能超过 %{limit}.
|
|
35
|
-
embedded_in_must_have_inverse_of:
|
|
36
|
-
embedded_in的关联属性必须包含inverse_of.
|
|
37
|
-
dependent_only_references_one_or_many:
|
|
38
|
-
dependent => destroy|delete 选项只有在references_one或者references_many时候有效.
|
|
39
|
-
association_cant_have_inverse_of:
|
|
40
|
-
在当前的关联中,不允许定义inverse_of去,其只有在embedded_in或者references_many是数组的情况下使用
|
|
41
|
-
unsaved_document:
|
|
42
|
-
You cannot call create or create! through a relational association
|
|
43
|
-
relation (%{document}) who's parent (%{base}) is not already saved.
|
|
44
|
-
mixed_relations:
|
|
45
|
-
Referencing a(n) %{embedded} document from the %{root} document via a
|
|
46
|
-
relational association is not allowed since the %{embedded} is embedded.
|
|
47
|
-
no_environment:
|
|
48
|
-
"Mongoid attempted to find the appropriate environment but no Rails.env,
|
|
49
|
-
Sinatra::Base.environment, or RACK_ENV could be found."
|
|
50
|
-
scope_overwrite:
|
|
51
|
-
"Cannot create scope :%{scope_name}, because of existing method
|
|
52
|
-
%{model_name}.%{scope_name}."
|
|
53
|
-
blank_on_locale: "can't be blank in %{in_locale}"
|
data/lib/mongoid/collection.rb
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
require "mongoid/collections/retry"
|
|
3
|
-
require "mongoid/collections/operations"
|
|
4
|
-
require "mongoid/collections/master"
|
|
5
|
-
|
|
6
|
-
module Mongoid #:nodoc
|
|
7
|
-
|
|
8
|
-
# This class is the Mongoid wrapper to the Mongo Ruby driver's collection
|
|
9
|
-
# object.
|
|
10
|
-
class Collection
|
|
11
|
-
attr_reader :counter, :klass, :name
|
|
12
|
-
|
|
13
|
-
# All write operations should delegate to the master connection. These
|
|
14
|
-
# operations mimic the methods on a Mongo:Collection.
|
|
15
|
-
#
|
|
16
|
-
# @example Delegate the operation.
|
|
17
|
-
# collection.save({ :name => "Al" })
|
|
18
|
-
delegate *(Collections::Operations::PROXIED.dup << {:to => :master})
|
|
19
|
-
|
|
20
|
-
# Get the unwrapped driver collection for this mongoid collection.
|
|
21
|
-
#
|
|
22
|
-
# @example Get the driver collection.
|
|
23
|
-
# collection.driver
|
|
24
|
-
#
|
|
25
|
-
# @return [ Mongo::Collection ] The driver collection.
|
|
26
|
-
#
|
|
27
|
-
# @since 2.2.0
|
|
28
|
-
def driver
|
|
29
|
-
master.collection
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Find documents from the database given a selector and options.
|
|
33
|
-
#
|
|
34
|
-
# @example Find documents in the collection.
|
|
35
|
-
# collection.find({ :test => "value" })
|
|
36
|
-
#
|
|
37
|
-
# @param [ Hash ] selector The query selector.
|
|
38
|
-
# @param [ Hash ] options The options to pass to the db.
|
|
39
|
-
#
|
|
40
|
-
# @return [ Cursor ] The results.
|
|
41
|
-
def find(selector = {}, options = {})
|
|
42
|
-
cursor = Mongoid::Cursor.new(klass, self, master(options).find(selector, options))
|
|
43
|
-
if block_given?
|
|
44
|
-
yield cursor; cursor.close
|
|
45
|
-
else
|
|
46
|
-
cursor
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# Find the first document from the database given a selector and options.
|
|
51
|
-
#
|
|
52
|
-
# @example Find one document.
|
|
53
|
-
# collection.find_one({ :test => "value" })
|
|
54
|
-
#
|
|
55
|
-
# @param [ Hash ] selector The query selector.
|
|
56
|
-
# @param [ Hash ] options The options to pass to the db.
|
|
57
|
-
#
|
|
58
|
-
# @return [ Document, nil ] A matching document or nil if none found.
|
|
59
|
-
def find_one(selector = {}, options = {})
|
|
60
|
-
master(options).find_one(selector, options)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
# Initialize a new Mongoid::Collection, setting up the master, slave, and
|
|
64
|
-
# name attributes. Masters will be used for writes, slaves for reads.
|
|
65
|
-
#
|
|
66
|
-
# @example Create the new collection.
|
|
67
|
-
# Collection.new(masters, slaves, "test")
|
|
68
|
-
#
|
|
69
|
-
# @param [ Class ] klass The class the collection is for.
|
|
70
|
-
# @param [ String ] name The name of the collection.
|
|
71
|
-
# @param [ Hash ] options The collection options.
|
|
72
|
-
#
|
|
73
|
-
# @option options [ true, false ] :capped If the collection is capped.
|
|
74
|
-
# @option options [ Integer ] :size The capped collection size.
|
|
75
|
-
# @option options [ Integer ] :max The maximum number of docs in the
|
|
76
|
-
# capped collection.
|
|
77
|
-
def initialize(klass, name, options = {})
|
|
78
|
-
@klass, @name, @options = klass, name, options || {}
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
# Inserts one or more documents in the collection.
|
|
82
|
-
#
|
|
83
|
-
# @example Insert documents.
|
|
84
|
-
# collection.insert(
|
|
85
|
-
# { "field" => "value" },
|
|
86
|
-
# :safe => true
|
|
87
|
-
# )
|
|
88
|
-
#
|
|
89
|
-
# @param [ Hash, Array<Hash> ] documents A single document or multiples.
|
|
90
|
-
# @param [ Hash ] options The options.
|
|
91
|
-
#
|
|
92
|
-
# @since 2.0.2, batch-relational-insert
|
|
93
|
-
def insert(documents, options = {})
|
|
94
|
-
consumer = Threaded.insert(name)
|
|
95
|
-
if consumer
|
|
96
|
-
consumer.consume(documents, options)
|
|
97
|
-
else
|
|
98
|
-
master(options).insert(documents, options)
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
# Perform a map/reduce on the documents.
|
|
103
|
-
#
|
|
104
|
-
# @example Perform the map/reduce.
|
|
105
|
-
# collection.map_reduce(map, reduce)
|
|
106
|
-
#
|
|
107
|
-
# @param [ String ] map The map javascript function.
|
|
108
|
-
# @param [ String ] reduce The reduce javascript function.
|
|
109
|
-
# @param [ Hash ] options The options to pass to the db.
|
|
110
|
-
#
|
|
111
|
-
# @return [ Cursor ] The results.
|
|
112
|
-
def map_reduce(map, reduce, options = {})
|
|
113
|
-
master(options).map_reduce(map, reduce, options)
|
|
114
|
-
end
|
|
115
|
-
alias :mapreduce :map_reduce
|
|
116
|
-
|
|
117
|
-
# Return the object responsible for writes to the database. This will
|
|
118
|
-
# always return a collection associated with the Master DB.
|
|
119
|
-
#
|
|
120
|
-
# @example Get the master connection.
|
|
121
|
-
# collection.master
|
|
122
|
-
#
|
|
123
|
-
# @return [ Master ] The master connection.
|
|
124
|
-
def master(options = {})
|
|
125
|
-
options.delete(:cache)
|
|
126
|
-
db = Mongoid.databases[klass.database] || Mongoid.master
|
|
127
|
-
@master ||= Collections::Master.new(db, @name, @options)
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
# Updates one or more documents in the collection.
|
|
131
|
-
#
|
|
132
|
-
# @example Update documents.
|
|
133
|
-
# collection.update(
|
|
134
|
-
# { "_id" => BSON::OjectId.new },
|
|
135
|
-
# { "$push" => { "addresses" => { "_id" => "street" } } },
|
|
136
|
-
# :safe => true
|
|
137
|
-
# )
|
|
138
|
-
#
|
|
139
|
-
# @param [ Hash ] selector The document selector.
|
|
140
|
-
# @param [ Hash ] document The modifier.
|
|
141
|
-
# @param [ Hash ] options The options.
|
|
142
|
-
#
|
|
143
|
-
# @since 2.0.0
|
|
144
|
-
def update(selector, document, options = {})
|
|
145
|
-
updater = Threaded.update_consumer(name)
|
|
146
|
-
if updater
|
|
147
|
-
updater.consume(selector, document, options)
|
|
148
|
-
else
|
|
149
|
-
master(options).update(selector, document, options)
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
def drop(*args)
|
|
154
|
-
@master = nil if master.drop
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
end
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
module Mongoid #:nodoc:
|
|
3
|
-
module Collections #:nodoc:
|
|
4
|
-
|
|
5
|
-
# This class wraps the MongoDB master database.
|
|
6
|
-
class Master
|
|
7
|
-
include Mongoid::Collections::Retry
|
|
8
|
-
|
|
9
|
-
attr_reader :collection
|
|
10
|
-
|
|
11
|
-
# All read and write operations should delegate to the master connection.
|
|
12
|
-
# These operations mimic the methods on a Mongo:Collection.
|
|
13
|
-
#
|
|
14
|
-
# @example Proxy the driver save.
|
|
15
|
-
# collection.save({ :name => "Al" })
|
|
16
|
-
Operations::ALL.each do |name|
|
|
17
|
-
class_eval <<-EOS, __FILE__, __LINE__
|
|
18
|
-
def #{name}(*args)
|
|
19
|
-
retry_on_connection_failure do
|
|
20
|
-
collection.#{name}(*args)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
EOS
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
# Create the new database writer. Will create a collection from the
|
|
27
|
-
# master database.
|
|
28
|
-
#
|
|
29
|
-
# @example Create a new wrapped master.
|
|
30
|
-
# Master.new(db, "testing")
|
|
31
|
-
#
|
|
32
|
-
# @param [ Mongo::DB ] master The master database.
|
|
33
|
-
# @param [ String ] name The name of the database.
|
|
34
|
-
# @param [ Hash ] options The collection options.
|
|
35
|
-
#
|
|
36
|
-
# @option options [ true, false ] :capped If the collection is capped.
|
|
37
|
-
# @option options [ Integer ] :size The capped collection size.
|
|
38
|
-
# @option options [ Integer ] :max The maximum number of docs in the
|
|
39
|
-
# capped collection.
|
|
40
|
-
def initialize(master, name, options = {})
|
|
41
|
-
@collection = master.create_collection(name, options)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# encoding: utf-8
|
|
2
|
-
module Mongoid #:nodoc:
|
|
3
|
-
module Collections #:nodoc:
|
|
4
|
-
module Operations #:nodoc:
|
|
5
|
-
|
|
6
|
-
# Constant definining all the read operations available for a
|
|
7
|
-
# Mongo:Collection. This is used in delegation.
|
|
8
|
-
READ = [
|
|
9
|
-
:[],
|
|
10
|
-
:db,
|
|
11
|
-
:count,
|
|
12
|
-
:distinct,
|
|
13
|
-
:find,
|
|
14
|
-
:find_one,
|
|
15
|
-
:group,
|
|
16
|
-
:index_information,
|
|
17
|
-
:map_reduce,
|
|
18
|
-
:mapreduce,
|
|
19
|
-
:stats,
|
|
20
|
-
:options
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
# Constant definining all the write operations available for a
|
|
24
|
-
# Mongo:Collection. This is used in delegation.
|
|
25
|
-
WRITE = [
|
|
26
|
-
:<<,
|
|
27
|
-
:create_index,
|
|
28
|
-
:drop,
|
|
29
|
-
:drop_index,
|
|
30
|
-
:drop_indexes,
|
|
31
|
-
:find_and_modify,
|
|
32
|
-
:insert,
|
|
33
|
-
:remove,
|
|
34
|
-
:rename,
|
|
35
|
-
:save,
|
|
36
|
-
:update
|
|
37
|
-
]
|
|
38
|
-
|
|
39
|
-
# Convenience constant for getting back all collection operations.
|
|
40
|
-
ALL = (READ + WRITE)
|
|
41
|
-
PROXIED = ALL - [ :find, :find_one, :map_reduce, :mapreduce, :update ]
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|