mongoid 2.4.9 → 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 +869 -8
- 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 -6
- 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 +4 -4
- 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 +39 -12
- 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 +12 -4
- 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 -148
- 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 +14 -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 -122
- 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 +103 -25
- data/lib/mongoid/validations.rb +62 -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 +93 -155
- 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 -485
- 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 -31
- 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
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require "mongoid/sessions/factory"
|
|
3
|
+
require "mongoid/sessions/validators"
|
|
4
|
+
|
|
5
|
+
module Mongoid
|
|
6
|
+
module Sessions
|
|
7
|
+
extend ActiveSupport::Concern
|
|
8
|
+
|
|
9
|
+
included do
|
|
10
|
+
cattr_accessor :default_collection_name, :storage_options
|
|
11
|
+
self.default_collection_name = self.name.collectionize.to_sym
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Get the collection for this model from the session. Will check for an
|
|
15
|
+
# overridden collection name from the store_in macro or the collection
|
|
16
|
+
# with a pluralized model name.
|
|
17
|
+
#
|
|
18
|
+
# @example Get the model's collection.
|
|
19
|
+
# Model.collection
|
|
20
|
+
#
|
|
21
|
+
# @return [ Moped::Collection ] The collection.
|
|
22
|
+
#
|
|
23
|
+
# @since 3.0.0
|
|
24
|
+
def collection
|
|
25
|
+
self.class.collection
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Get the name of the collection this model persists to. This will be
|
|
29
|
+
# either the pluralized class name or the option defined in the store_in
|
|
30
|
+
# macro.
|
|
31
|
+
#
|
|
32
|
+
# @example Get the collection name.
|
|
33
|
+
# Model.collection_name
|
|
34
|
+
#
|
|
35
|
+
# @return [ String ] The name of the collection.
|
|
36
|
+
#
|
|
37
|
+
# @since 3.0.0
|
|
38
|
+
def collection_name
|
|
39
|
+
self.class.collection_name
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Get the session for this model. This is determined in the following order:
|
|
43
|
+
#
|
|
44
|
+
# 1. Any custom configuration provided by the 'store_in' macro.
|
|
45
|
+
# 2. The 'default' session as provided in the mongoid.yml
|
|
46
|
+
#
|
|
47
|
+
# @example Get the session.
|
|
48
|
+
# model.mongo_session
|
|
49
|
+
#
|
|
50
|
+
# @return [ Moped::Session ] The default moped session.
|
|
51
|
+
#
|
|
52
|
+
# @since 3.0.0
|
|
53
|
+
def mongo_session
|
|
54
|
+
self.class.mongo_session
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Tell the next persistance operation to store in a specific collection,
|
|
58
|
+
# database or session.
|
|
59
|
+
#
|
|
60
|
+
# @example Save the current document to a different collection.
|
|
61
|
+
# model.with(collection: "secondary").save
|
|
62
|
+
#
|
|
63
|
+
# @example Save the current document to a different database.
|
|
64
|
+
# model.with(database: "secondary").save
|
|
65
|
+
#
|
|
66
|
+
# @example Save the current document to a different session.
|
|
67
|
+
# model.with(session: "replica_set").save
|
|
68
|
+
#
|
|
69
|
+
# @example Save with a combination of options.
|
|
70
|
+
# model.with(session: "sharded", database: "secondary").save
|
|
71
|
+
#
|
|
72
|
+
# @param [ Hash ] options The storage options.
|
|
73
|
+
#
|
|
74
|
+
# @option options [ String, Symbol ] :collection The collection name.
|
|
75
|
+
# @option options [ String, Symbol ] :database The database name.
|
|
76
|
+
# @option options [ String, Symbol ] :session The session name.
|
|
77
|
+
#
|
|
78
|
+
# @return [ Document ] The current document.
|
|
79
|
+
#
|
|
80
|
+
# @since 3.0.0
|
|
81
|
+
def with(options)
|
|
82
|
+
Threaded.set_persistence_options(self.class, options)
|
|
83
|
+
self
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
class << self
|
|
87
|
+
|
|
88
|
+
# Clear all sessions from the current thread.
|
|
89
|
+
#
|
|
90
|
+
# @example Clear all sessions.
|
|
91
|
+
# Mongoid::Sessions.clear
|
|
92
|
+
#
|
|
93
|
+
# @return [ Array ] The empty sessions.
|
|
94
|
+
#
|
|
95
|
+
# @since 3.0.0
|
|
96
|
+
def clear
|
|
97
|
+
Threaded.sessions.clear
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Get the default session.
|
|
101
|
+
#
|
|
102
|
+
# @example Get the default session.
|
|
103
|
+
# Mongoid::Sessions.default
|
|
104
|
+
#
|
|
105
|
+
# @return [ Moped::Session ] The default session.
|
|
106
|
+
#
|
|
107
|
+
# @since 3.0.0
|
|
108
|
+
def default
|
|
109
|
+
Threaded.sessions[:default] ||= Sessions::Factory.default
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Get a session with the provided name.
|
|
113
|
+
#
|
|
114
|
+
# @example Get a session with the name.
|
|
115
|
+
# Mongoid::Sessions.with_name(:replica)
|
|
116
|
+
#
|
|
117
|
+
# @param [ Symbol ] name The name of the session.
|
|
118
|
+
#
|
|
119
|
+
# @return [ Moped::Session ] The named session.
|
|
120
|
+
#
|
|
121
|
+
# @since 3.0.0
|
|
122
|
+
def with_name(name)
|
|
123
|
+
Threaded.sessions[name.to_sym] ||= Sessions::Factory.create(name)
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
module ClassMethods
|
|
128
|
+
|
|
129
|
+
# Clear all persistence options from the current thread.
|
|
130
|
+
#
|
|
131
|
+
# @example Clear the persistence options.
|
|
132
|
+
# Mongoid::Sessions.clear_persistence_options
|
|
133
|
+
#
|
|
134
|
+
# @return [ true ] True.
|
|
135
|
+
#
|
|
136
|
+
# @since 3.0.0
|
|
137
|
+
def clear_persistence_options
|
|
138
|
+
Threaded.clear_persistence_options(self)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Get the collection for this model from the session. Will check for an
|
|
142
|
+
# overridden collection name from the store_in macro or the collection
|
|
143
|
+
# with a pluralized model name.
|
|
144
|
+
#
|
|
145
|
+
# @example Get the model's collection.
|
|
146
|
+
# Model.collection
|
|
147
|
+
#
|
|
148
|
+
# @return [ Moped::Collection ] The collection.
|
|
149
|
+
#
|
|
150
|
+
# @since 3.0.0
|
|
151
|
+
def collection
|
|
152
|
+
if opts = persistence_options
|
|
153
|
+
coll = mongo_session.with(opts)[opts[:collection] || collection_name]
|
|
154
|
+
clear_persistence_options
|
|
155
|
+
coll
|
|
156
|
+
else
|
|
157
|
+
mongo_session[collection_name]
|
|
158
|
+
end
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
# Get the name of the collection this model persists to. This will be
|
|
162
|
+
# either the pluralized class name or the option defined in the store_in
|
|
163
|
+
# macro.
|
|
164
|
+
#
|
|
165
|
+
# @example Get the collection name.
|
|
166
|
+
# Model.collection_name
|
|
167
|
+
#
|
|
168
|
+
# @return [ Symbol ] The name of the collection.
|
|
169
|
+
#
|
|
170
|
+
# @since 3.0.0
|
|
171
|
+
def collection_name
|
|
172
|
+
@collection_name ||= __collection_name__
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
# Get the default database name for this model.
|
|
176
|
+
#
|
|
177
|
+
# @example Get the default database name.
|
|
178
|
+
# Model.database_name
|
|
179
|
+
#
|
|
180
|
+
# @return [ Symbol ] The name of the database.
|
|
181
|
+
#
|
|
182
|
+
# @since 3.0.0
|
|
183
|
+
def database_name
|
|
184
|
+
@database_name ||= __database_name__
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
# Get the session for this model. This is determined in the following order:
|
|
188
|
+
#
|
|
189
|
+
# 1. Any custom configuration provided by the 'store_in' macro.
|
|
190
|
+
# 2. The 'default' session as provided in the mongoid.yml
|
|
191
|
+
#
|
|
192
|
+
# @example Get the session.
|
|
193
|
+
# Model.mongo_session
|
|
194
|
+
#
|
|
195
|
+
# @return [ Moped::Session ] The default moped session.
|
|
196
|
+
#
|
|
197
|
+
# @since 3.0.0
|
|
198
|
+
def mongo_session
|
|
199
|
+
session = __session__
|
|
200
|
+
if persistence_options && name = persistence_options[:database]
|
|
201
|
+
session.use(name)
|
|
202
|
+
else
|
|
203
|
+
session.use(database_name)
|
|
204
|
+
end
|
|
205
|
+
session
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
# Get the persistence options from the current thread.
|
|
209
|
+
#
|
|
210
|
+
# @example Get the persistence options.
|
|
211
|
+
# Model.persistence_options
|
|
212
|
+
#
|
|
213
|
+
# @return [ Hash ] The persistence options.
|
|
214
|
+
#
|
|
215
|
+
# @since 3.0.0
|
|
216
|
+
def persistence_options
|
|
217
|
+
Threaded.persistence_options(self)
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
# Give this model specific custom default storage options.
|
|
221
|
+
#
|
|
222
|
+
# @example Store this model by default in "artists"
|
|
223
|
+
# class Band
|
|
224
|
+
# include Mongoid::Document
|
|
225
|
+
# store_in collection: "artists"
|
|
226
|
+
# end
|
|
227
|
+
#
|
|
228
|
+
# @example Store this model by default in the sharded db.
|
|
229
|
+
# class Band
|
|
230
|
+
# include Mongoid::Document
|
|
231
|
+
# store_in database: "echo_shard"
|
|
232
|
+
# end
|
|
233
|
+
#
|
|
234
|
+
# @example Store this model by default in a different session.
|
|
235
|
+
# class Band
|
|
236
|
+
# include Mongoid::Document
|
|
237
|
+
# store_in session: "secondary"
|
|
238
|
+
# end
|
|
239
|
+
#
|
|
240
|
+
# @example Store this model with a combination of options.
|
|
241
|
+
# class Band
|
|
242
|
+
# include Mongoid::Document
|
|
243
|
+
# store_in collection: "artists", database: "secondary"
|
|
244
|
+
# end
|
|
245
|
+
#
|
|
246
|
+
# @param [ Hash ] options The storage options.
|
|
247
|
+
#
|
|
248
|
+
# @option options [ String, Symbol ] :collection The collection name.
|
|
249
|
+
# @option options [ String, Symbol ] :database The database name.
|
|
250
|
+
# @option options [ String, Symbol ] :session The session name.
|
|
251
|
+
#
|
|
252
|
+
# @return [ Class ] The model class.
|
|
253
|
+
#
|
|
254
|
+
# @since 3.0.0
|
|
255
|
+
def store_in(options)
|
|
256
|
+
Validators::Storage.validate(self, options)
|
|
257
|
+
@collection_name, @database_name = nil, nil
|
|
258
|
+
self.storage_options = options
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
# Tell the next persistance operation to store in a specific collection,
|
|
262
|
+
# database or session.
|
|
263
|
+
#
|
|
264
|
+
# @example Create a document in a different collection.
|
|
265
|
+
# Model.with(collection: "secondary").create(name: "test")
|
|
266
|
+
#
|
|
267
|
+
# @example Create a document in a different database.
|
|
268
|
+
# Model.with(database: "secondary").create(name: "test")
|
|
269
|
+
#
|
|
270
|
+
# @example Create a document in a different session.
|
|
271
|
+
# Model.with(session: "secondary").create(name: "test")
|
|
272
|
+
#
|
|
273
|
+
# @example Create with a combination of options.
|
|
274
|
+
# Model.with(session: "sharded", database: "secondary").create
|
|
275
|
+
#
|
|
276
|
+
# @param [ Hash ] options The storage options.
|
|
277
|
+
#
|
|
278
|
+
# @option options [ String, Symbol ] :collection The collection name.
|
|
279
|
+
# @option options [ String, Symbol ] :database The database name.
|
|
280
|
+
# @option options [ String, Symbol ] :session The session name.
|
|
281
|
+
#
|
|
282
|
+
# @return [ Class ] The model class.
|
|
283
|
+
#
|
|
284
|
+
# @since 3.0.0
|
|
285
|
+
def with(options)
|
|
286
|
+
Threaded.set_persistence_options(self, options)
|
|
287
|
+
self
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
private
|
|
291
|
+
|
|
292
|
+
# Get the name of the collection this model persists to.
|
|
293
|
+
#
|
|
294
|
+
# @example Get the collection name.
|
|
295
|
+
# Model.__collection_name__
|
|
296
|
+
#
|
|
297
|
+
# @return [ Symbol ] The name of the collection.
|
|
298
|
+
#
|
|
299
|
+
# @since 3.0.0
|
|
300
|
+
def __collection_name__
|
|
301
|
+
if storage_options && name = storage_options[:collection]
|
|
302
|
+
name.to_sym
|
|
303
|
+
else
|
|
304
|
+
default_collection_name
|
|
305
|
+
end
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
# Get the database name for the model.
|
|
309
|
+
#
|
|
310
|
+
# @example Get the database name.
|
|
311
|
+
# Model.__database_name__
|
|
312
|
+
#
|
|
313
|
+
# @return [ Symbol ] The name of the database.
|
|
314
|
+
#
|
|
315
|
+
# @since 3.0.0
|
|
316
|
+
def __database_name__
|
|
317
|
+
if storage_options && name = storage_options[:database]
|
|
318
|
+
name.to_sym
|
|
319
|
+
else
|
|
320
|
+
Mongoid.sessions[__session_name__][:database]
|
|
321
|
+
end
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
# Get the session name for the model.
|
|
325
|
+
#
|
|
326
|
+
# @example Get the session name.
|
|
327
|
+
# Model.__session_name__
|
|
328
|
+
#
|
|
329
|
+
# @return [ Symbol ] The name of the session.
|
|
330
|
+
#
|
|
331
|
+
# @since 3.0.0
|
|
332
|
+
def __session_name__
|
|
333
|
+
if storage_options && name = storage_options[:session]
|
|
334
|
+
name.to_sym
|
|
335
|
+
else
|
|
336
|
+
:default
|
|
337
|
+
end
|
|
338
|
+
end
|
|
339
|
+
|
|
340
|
+
# Get the session for this class.
|
|
341
|
+
#
|
|
342
|
+
# @example Get the session.
|
|
343
|
+
# Model.__session__
|
|
344
|
+
#
|
|
345
|
+
# @return [ Moped::Session ] The moped session.
|
|
346
|
+
#
|
|
347
|
+
# @since 3.0.0
|
|
348
|
+
def __session__
|
|
349
|
+
if persistence_options && name = persistence_options[:session]
|
|
350
|
+
Sessions.with_name(name)
|
|
351
|
+
elsif storage_options && name = storage_options[:session]
|
|
352
|
+
Sessions.with_name(name)
|
|
353
|
+
else
|
|
354
|
+
Sessions.default
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
end
|
|
358
|
+
end
|
|
359
|
+
end
|
data/lib/mongoid/sharding.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
-
module Mongoid
|
|
2
|
+
module Mongoid
|
|
3
3
|
|
|
4
4
|
# This module contains behaviour for adding shard key fields to updates.
|
|
5
5
|
module Sharding
|
|
@@ -31,14 +31,14 @@ module Mongoid #:nodoc
|
|
|
31
31
|
#
|
|
32
32
|
# @since 2.0.0
|
|
33
33
|
def shard_key_selector
|
|
34
|
-
{}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
end
|
|
34
|
+
selector = {}
|
|
35
|
+
shard_key_fields.each do |field|
|
|
36
|
+
selector[field.to_s] = send(field)
|
|
38
37
|
end
|
|
38
|
+
selector
|
|
39
39
|
end
|
|
40
40
|
|
|
41
|
-
module ClassMethods
|
|
41
|
+
module ClassMethods
|
|
42
42
|
|
|
43
43
|
# Specifies a shard key with the field(s) specified.
|
|
44
44
|
#
|
data/lib/mongoid/state.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
-
module Mongoid
|
|
2
|
+
module Mongoid
|
|
3
3
|
|
|
4
4
|
# This module contains the behaviour for getting the various states a
|
|
5
5
|
# document can transition through.
|
|
@@ -16,9 +16,8 @@ module Mongoid #:nodoc:
|
|
|
16
16
|
#
|
|
17
17
|
# @return [ true, false ] True if new, false if not.
|
|
18
18
|
def new_record?
|
|
19
|
-
@new_record
|
|
19
|
+
@new_record ||= false
|
|
20
20
|
end
|
|
21
|
-
alias :new? :new_record?
|
|
22
21
|
|
|
23
22
|
# Checks if the document has been saved to the database. Returns false
|
|
24
23
|
# if the document has been destroyed.
|
|
@@ -41,7 +40,7 @@ module Mongoid #:nodoc:
|
|
|
41
40
|
#
|
|
42
41
|
# @since 2.3.2
|
|
43
42
|
def flagged_for_destroy?
|
|
44
|
-
|
|
43
|
+
@flagged_for_destroy ||= false
|
|
45
44
|
end
|
|
46
45
|
|
|
47
46
|
# Returns true if the +Document+ has been succesfully destroyed, and false
|
|
@@ -53,7 +52,7 @@ module Mongoid #:nodoc:
|
|
|
53
52
|
#
|
|
54
53
|
# @return [ true, false ] True if destroyed, false if not.
|
|
55
54
|
def destroyed?
|
|
56
|
-
@destroyed
|
|
55
|
+
@destroyed ||= false
|
|
57
56
|
end
|
|
58
57
|
alias :deleted? :destroyed?
|
|
59
58
|
|
|
@@ -64,7 +63,7 @@ module Mongoid #:nodoc:
|
|
|
64
63
|
#
|
|
65
64
|
# @return [ true, false ] Is the document new and embedded?
|
|
66
65
|
def pushable?
|
|
67
|
-
|
|
66
|
+
new_record? &&
|
|
68
67
|
embedded_many? &&
|
|
69
68
|
_parent.persisted? &&
|
|
70
69
|
!_parent.delayed_atomic_sets[atomic_path]
|
|
@@ -79,7 +78,7 @@ module Mongoid #:nodoc:
|
|
|
79
78
|
#
|
|
80
79
|
# @since 2.1.0
|
|
81
80
|
def settable?
|
|
82
|
-
|
|
81
|
+
new_record? && embedded_one? && _parent.persisted?
|
|
83
82
|
end
|
|
84
83
|
|
|
85
84
|
# Is the document updateable?
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
|
-
module Mongoid
|
|
3
|
-
module Threaded
|
|
2
|
+
module Mongoid
|
|
3
|
+
module Threaded
|
|
4
4
|
|
|
5
5
|
# This module contains convenience methods for document lifecycle that
|
|
6
6
|
# resides on thread locals.
|
|
@@ -22,10 +22,10 @@ module Mongoid #:nodoc:
|
|
|
22
22
|
#
|
|
23
23
|
# @since 2.2.0
|
|
24
24
|
def _assigning
|
|
25
|
-
Threaded.begin(
|
|
25
|
+
Threaded.begin("assign")
|
|
26
26
|
yield
|
|
27
27
|
ensure
|
|
28
|
-
Threaded.exit(
|
|
28
|
+
Threaded.exit("assign")
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
# Is the current thread in assigning mode?
|
|
@@ -37,7 +37,7 @@ module Mongoid #:nodoc:
|
|
|
37
37
|
#
|
|
38
38
|
# @since 2.1.0
|
|
39
39
|
def _assigning?
|
|
40
|
-
Threaded.executing?(
|
|
40
|
+
Threaded.executing?("assign")
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
# Execute a block in binding mode.
|
|
@@ -51,10 +51,10 @@ module Mongoid #:nodoc:
|
|
|
51
51
|
#
|
|
52
52
|
# @since 2.1.0
|
|
53
53
|
def _binding
|
|
54
|
-
Threaded.begin(
|
|
54
|
+
Threaded.begin("bind")
|
|
55
55
|
yield
|
|
56
56
|
ensure
|
|
57
|
-
Threaded.exit(
|
|
57
|
+
Threaded.exit("bind")
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
# Is the current thread in binding mode?
|
|
@@ -66,7 +66,7 @@ module Mongoid #:nodoc:
|
|
|
66
66
|
#
|
|
67
67
|
# @since 2.1.0
|
|
68
68
|
def _binding?
|
|
69
|
-
Threaded.executing?(
|
|
69
|
+
Threaded.executing?("bind")
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
# Execute a block in building mode.
|
|
@@ -80,10 +80,10 @@ module Mongoid #:nodoc:
|
|
|
80
80
|
#
|
|
81
81
|
# @since 2.1.0
|
|
82
82
|
def _building
|
|
83
|
-
Threaded.begin(
|
|
83
|
+
Threaded.begin("build")
|
|
84
84
|
yield
|
|
85
85
|
ensure
|
|
86
|
-
Threaded.exit(
|
|
86
|
+
Threaded.exit("build")
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
# Is the current thread in building mode?
|
|
@@ -95,7 +95,7 @@ module Mongoid #:nodoc:
|
|
|
95
95
|
#
|
|
96
96
|
# @since 2.1.0
|
|
97
97
|
def _building?
|
|
98
|
-
Threaded.executing?(
|
|
98
|
+
Threaded.executing?("build")
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
# Is the current thread in creating mode?
|
|
@@ -107,7 +107,7 @@ module Mongoid #:nodoc:
|
|
|
107
107
|
#
|
|
108
108
|
# @since 2.1.0
|
|
109
109
|
def _creating?
|
|
110
|
-
Threaded.executing?(
|
|
110
|
+
Threaded.executing?("create")
|
|
111
111
|
end
|
|
112
112
|
|
|
113
113
|
# Execute a block in loading mode.
|
|
@@ -121,10 +121,10 @@ module Mongoid #:nodoc:
|
|
|
121
121
|
#
|
|
122
122
|
# @since 2.3.2
|
|
123
123
|
def _loading
|
|
124
|
-
Threaded.begin(
|
|
124
|
+
Threaded.begin("load")
|
|
125
125
|
yield
|
|
126
126
|
ensure
|
|
127
|
-
Threaded.exit(
|
|
127
|
+
Threaded.exit("load")
|
|
128
128
|
end
|
|
129
129
|
|
|
130
130
|
# Is the current thread in loading mode?
|
|
@@ -136,7 +136,7 @@ module Mongoid #:nodoc:
|
|
|
136
136
|
#
|
|
137
137
|
# @since 2.3.2
|
|
138
138
|
def _loading?
|
|
139
|
-
Threaded.executing?(
|
|
139
|
+
Threaded.executing?("load")
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
# Execute a block in loading revision mode.
|
|
@@ -150,13 +150,13 @@ module Mongoid #:nodoc:
|
|
|
150
150
|
#
|
|
151
151
|
# @since 2.3.4
|
|
152
152
|
def _loading_revision
|
|
153
|
-
Threaded.begin(
|
|
153
|
+
Threaded.begin("load_revision")
|
|
154
154
|
yield
|
|
155
155
|
ensure
|
|
156
|
-
Threaded.exit(
|
|
156
|
+
Threaded.exit("load_revision")
|
|
157
157
|
end
|
|
158
158
|
|
|
159
|
-
module ClassMethods
|
|
159
|
+
module ClassMethods
|
|
160
160
|
|
|
161
161
|
# Execute a block in creating mode.
|
|
162
162
|
#
|
|
@@ -169,10 +169,10 @@ module Mongoid #:nodoc:
|
|
|
169
169
|
#
|
|
170
170
|
# @since 2.1.0
|
|
171
171
|
def _creating
|
|
172
|
-
Threaded.begin(
|
|
172
|
+
Threaded.begin("create")
|
|
173
173
|
yield
|
|
174
174
|
ensure
|
|
175
|
-
Threaded.exit(
|
|
175
|
+
Threaded.exit("create")
|
|
176
176
|
end
|
|
177
177
|
|
|
178
178
|
# Is the current thread in loading revision mode?
|
|
@@ -184,7 +184,7 @@ module Mongoid #:nodoc:
|
|
|
184
184
|
#
|
|
185
185
|
# @since 2.3.4
|
|
186
186
|
def _loading_revision?
|
|
187
|
-
Threaded.executing?(
|
|
187
|
+
Threaded.executing?("load_revision")
|
|
188
188
|
end
|
|
189
189
|
end
|
|
190
190
|
end
|
|
File without changes
|