mongoid 7.4.0 → 8.0.1
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.md +3 -3
- data/lib/config/locales/en.yml +51 -28
- data/lib/mongoid/association/accessors.rb +32 -3
- data/lib/mongoid/association/bindable.rb +48 -0
- data/lib/mongoid/association/builders.rb +4 -2
- data/lib/mongoid/association/eager_loadable.rb +29 -7
- data/lib/mongoid/association/embedded/batchable.rb +48 -8
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +24 -2
- data/lib/mongoid/association/embedded/embedded_in.rb +2 -1
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +1 -0
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +1 -1
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +40 -18
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +18 -4
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +21 -2
- data/lib/mongoid/association/macros.rb +22 -1
- data/lib/mongoid/association/many.rb +5 -0
- data/lib/mongoid/association/nested/many.rb +2 -1
- data/lib/mongoid/association/proxy.rb +12 -0
- data/lib/mongoid/association/referenced/auto_save.rb +3 -2
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +1 -0
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +1 -1
- data/lib/mongoid/association/referenced/belongs_to.rb +1 -1
- data/lib/mongoid/association/referenced/counter_cache.rb +8 -8
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +64 -11
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +4 -1
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +10 -14
- data/lib/mongoid/association/referenced/has_many/proxy.rb +12 -9
- data/lib/mongoid/association/referenced/has_one/buildable.rb +1 -1
- data/lib/mongoid/association/referenced/has_one/proxy.rb +8 -11
- data/lib/mongoid/association/referenced/syncable.rb +2 -2
- data/lib/mongoid/association/relatable.rb +38 -4
- data/lib/mongoid/atomic/paths/embedded/many.rb +19 -0
- data/lib/mongoid/attributes/processing.rb +9 -2
- data/lib/mongoid/attributes.rb +30 -27
- data/lib/mongoid/changeable.rb +37 -2
- data/lib/mongoid/clients/options.rb +4 -0
- data/lib/mongoid/clients/sessions.rb +2 -14
- data/lib/mongoid/config/environment.rb +20 -4
- data/lib/mongoid/config.rb +25 -10
- data/lib/mongoid/contextual/aggregable/memory.rb +23 -15
- data/lib/mongoid/contextual/aggregable/mongo.rb +1 -1
- data/lib/mongoid/contextual/map_reduce.rb +2 -2
- data/lib/mongoid/contextual/memory.rb +176 -17
- data/lib/mongoid/contextual/mongo.rb +226 -206
- data/lib/mongoid/contextual/none.rb +66 -4
- data/lib/mongoid/copyable.rb +32 -8
- data/lib/mongoid/criteria/includable.rb +24 -20
- data/lib/mongoid/criteria/marshalable.rb +10 -2
- data/lib/mongoid/criteria/queryable/extensions/array.rb +2 -13
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +25 -4
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/date.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -14
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/object.rb +2 -1
- data/lib/mongoid/criteria/queryable/extensions/range.rb +13 -5
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +1 -1
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +3 -1
- data/lib/mongoid/criteria/queryable/extensions/time.rb +6 -1
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +6 -1
- data/lib/mongoid/criteria/queryable/mergeable.rb +21 -0
- data/lib/mongoid/criteria/queryable/optional.rb +3 -9
- data/lib/mongoid/criteria/queryable/options.rb +1 -1
- data/lib/mongoid/criteria/queryable/selectable.rb +28 -34
- data/lib/mongoid/criteria/queryable/selector.rb +89 -4
- data/lib/mongoid/criteria/queryable/smash.rb +39 -6
- data/lib/mongoid/criteria/queryable.rb +11 -6
- data/lib/mongoid/criteria.rb +1 -26
- data/lib/mongoid/deprecable.rb +36 -0
- data/lib/mongoid/deprecation.rb +25 -0
- data/lib/mongoid/document.rb +96 -32
- data/lib/mongoid/errors/document_not_found.rb +29 -8
- data/lib/mongoid/errors/invalid_dot_dollar_assignment.rb +23 -0
- data/lib/mongoid/errors/invalid_field.rb +5 -1
- data/lib/mongoid/errors/invalid_field_type.rb +26 -0
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +1 -1
- data/lib/mongoid/errors.rb +2 -2
- data/lib/mongoid/extensions/array.rb +8 -6
- data/lib/mongoid/extensions/big_decimal.rb +29 -10
- data/lib/mongoid/extensions/binary.rb +42 -0
- data/lib/mongoid/extensions/boolean.rb +8 -2
- data/lib/mongoid/extensions/date.rb +26 -20
- data/lib/mongoid/extensions/date_time.rb +1 -1
- data/lib/mongoid/extensions/float.rb +4 -5
- data/lib/mongoid/extensions/hash.rb +12 -5
- data/lib/mongoid/extensions/integer.rb +4 -5
- data/lib/mongoid/extensions/object.rb +2 -0
- data/lib/mongoid/extensions/range.rb +41 -10
- data/lib/mongoid/extensions/regexp.rb +11 -4
- data/lib/mongoid/extensions/set.rb +11 -4
- data/lib/mongoid/extensions/string.rb +2 -13
- data/lib/mongoid/extensions/symbol.rb +3 -14
- data/lib/mongoid/extensions/time.rb +27 -16
- data/lib/mongoid/extensions/time_with_zone.rb +1 -2
- data/lib/mongoid/extensions.rb +1 -0
- data/lib/mongoid/factory.rb +42 -7
- data/lib/mongoid/fields/foreign_key.rb +7 -0
- data/lib/mongoid/fields/validators/macro.rb +3 -9
- data/lib/mongoid/fields.rb +194 -28
- data/lib/mongoid/findable.rb +27 -7
- data/lib/mongoid/indexable/specification.rb +1 -1
- data/lib/mongoid/indexable/validators/options.rb +4 -1
- data/lib/mongoid/interceptable.rb +69 -9
- data/lib/mongoid/persistable/creatable.rb +14 -5
- data/lib/mongoid/persistable/updatable.rb +12 -5
- data/lib/mongoid/persistable/upsertable.rb +1 -1
- data/lib/mongoid/persistence_context.rb +19 -2
- data/lib/mongoid/query_cache.rb +6 -258
- data/lib/mongoid/railties/controller_runtime.rb +1 -1
- data/lib/mongoid/reloadable.rb +7 -3
- data/lib/mongoid/selectable.rb +1 -2
- data/lib/mongoid/stateful.rb +27 -1
- data/lib/mongoid/timestamps/created.rb +1 -1
- data/lib/mongoid/timestamps/updated.rb +1 -1
- data/lib/mongoid/touchable.rb +2 -3
- data/lib/mongoid/traversable.rb +5 -1
- data/lib/mongoid/validatable/uniqueness.rb +2 -1
- data/lib/mongoid/version.rb +1 -1
- data/lib/mongoid/warnings.rb +28 -0
- data/lib/mongoid.rb +2 -0
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +11 -5
- data/spec/config/mongoid.yml +16 -0
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +28 -26
- data/spec/integration/associations/belongs_to_spec.rb +18 -0
- data/spec/integration/associations/embedded_dirty_spec.rb +28 -0
- data/spec/integration/associations/embedded_spec.rb +15 -0
- data/spec/integration/associations/embeds_many_spec.rb +15 -2
- data/spec/integration/associations/embeds_one_spec.rb +18 -0
- data/spec/integration/associations/foreign_key_spec.rb +9 -0
- data/spec/integration/associations/has_and_belongs_to_many_spec.rb +21 -0
- data/spec/integration/associations/has_one_spec.rb +97 -1
- data/spec/integration/associations/scope_option_spec.rb +1 -1
- data/spec/integration/callbacks_models.rb +95 -1
- data/spec/integration/callbacks_spec.rb +226 -4
- data/spec/integration/criteria/range_spec.rb +95 -1
- data/spec/integration/discriminator_key_spec.rb +115 -76
- data/spec/integration/dots_and_dollars_spec.rb +277 -0
- data/spec/integration/matcher_examples_spec.rb +20 -13
- data/spec/integration/matcher_operator_data/type_decimal.yml +3 -2
- data/spec/integration/matcher_operator_spec.rb +3 -5
- data/spec/integration/persistence/range_field_spec.rb +350 -0
- data/spec/lite_spec_helper.rb +1 -1
- data/spec/mongoid/association/counter_cache_spec.rb +1 -1
- data/spec/mongoid/association/depending_spec.rb +9 -9
- data/spec/mongoid/association/eager_spec.rb +2 -1
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +2 -1
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +54 -0
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +69 -9
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +112 -0
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +219 -8
- data/spec/mongoid/association/embedded/embeds_many_models.rb +157 -0
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +12 -0
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +68 -0
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +25 -0
- data/spec/mongoid/association/embedded/embeds_one_models.rb +19 -0
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +28 -0
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +2 -1
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +54 -0
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +15 -0
- data/spec/mongoid/association/referenced/belongs_to_models.rb +11 -0
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +2 -2
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +67 -4
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +25 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +35 -2
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +109 -0
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +8 -8
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +82 -13
- data/spec/mongoid/association/referenced/has_many_models.rb +3 -1
- data/spec/mongoid/association/referenced/has_many_spec.rb +25 -0
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +2 -2
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +107 -1
- data/spec/mongoid/association/referenced/has_one_models.rb +16 -0
- data/spec/mongoid/association/syncable_spec.rb +14 -0
- data/spec/mongoid/atomic/paths_spec.rb +0 -14
- data/spec/mongoid/atomic_spec.rb +22 -0
- data/spec/mongoid/attributes/nested_spec.rb +80 -11
- data/spec/mongoid/attributes/nested_spec_models.rb +48 -0
- data/spec/mongoid/attributes/projector_spec.rb +1 -5
- data/spec/mongoid/attributes_spec.rb +524 -27
- data/spec/mongoid/changeable_spec.rb +130 -13
- data/spec/mongoid/clients/factory_spec.rb +34 -42
- data/spec/mongoid/clients/options_spec.rb +1 -0
- data/spec/mongoid/clients/sessions_spec.rb +0 -38
- data/spec/mongoid/clients_spec.rb +32 -2
- data/spec/mongoid/config/environment_spec.rb +39 -1
- data/spec/mongoid/config_spec.rb +104 -13
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +396 -158
- data/spec/mongoid/contextual/aggregable/memory_table.yml +88 -0
- data/spec/mongoid/contextual/aggregable/memory_table_spec.rb +62 -0
- data/spec/mongoid/contextual/map_reduce_spec.rb +2 -16
- data/spec/mongoid/contextual/memory_spec.rb +1337 -69
- data/spec/mongoid/contextual/mongo_spec.rb +1105 -172
- data/spec/mongoid/contextual/none_spec.rb +38 -0
- data/spec/mongoid/copyable_spec.rb +451 -1
- data/spec/mongoid/criteria/findable_spec.rb +86 -210
- data/spec/mongoid/criteria/includable_spec.rb +1492 -0
- data/spec/mongoid/criteria/includable_spec_models.rb +54 -0
- data/spec/mongoid/criteria/marshalable_spec.rb +18 -1
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +7 -19
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +134 -26
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -15
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +73 -7
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +11 -0
- data/spec/mongoid/criteria/queryable/optional_spec.rb +0 -484
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +50 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +289 -124
- data/spec/mongoid/criteria/queryable/selector_spec.rb +14 -2
- data/spec/mongoid/criteria_spec.rb +474 -1198
- data/spec/mongoid/document_fields_spec.rb +173 -24
- data/spec/mongoid/document_spec.rb +32 -41
- data/spec/mongoid/errors/document_not_found_spec.rb +76 -0
- data/spec/mongoid/errors/invalid_field_spec.rb +1 -1
- data/spec/mongoid/errors/invalid_field_type_spec.rb +55 -0
- data/spec/mongoid/errors/mongoid_error_spec.rb +3 -1
- data/spec/mongoid/errors/no_environment_spec.rb +3 -3
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +1 -1
- data/spec/mongoid/extensions/array_spec.rb +16 -2
- data/spec/mongoid/extensions/big_decimal_spec.rb +697 -212
- data/spec/mongoid/extensions/binary_spec.rb +44 -9
- data/spec/mongoid/extensions/boolean_spec.rb +68 -82
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +7 -3
- data/spec/mongoid/extensions/date_spec.rb +71 -1
- data/spec/mongoid/extensions/date_time_spec.rb +15 -9
- data/spec/mongoid/extensions/float_spec.rb +48 -76
- data/spec/mongoid/extensions/hash_spec.rb +30 -0
- data/spec/mongoid/extensions/integer_spec.rb +45 -66
- data/spec/mongoid/extensions/range_spec.rb +255 -54
- data/spec/mongoid/extensions/regexp_spec.rb +58 -33
- data/spec/mongoid/extensions/set_spec.rb +106 -0
- data/spec/mongoid/extensions/string_spec.rb +53 -25
- data/spec/mongoid/extensions/symbol_spec.rb +18 -25
- data/spec/mongoid/extensions/time_spec.rb +634 -66
- data/spec/mongoid/extensions/time_with_zone_spec.rb +17 -31
- data/spec/mongoid/factory_spec.rb +61 -1
- data/spec/mongoid/fields_spec.rb +321 -50
- data/spec/mongoid/findable_spec.rb +80 -15
- data/spec/mongoid/indexable/specification_spec.rb +2 -2
- data/spec/mongoid/indexable_spec.rb +16 -19
- data/spec/mongoid/interceptable_spec.rb +584 -5
- data/spec/mongoid/interceptable_spec_models.rb +235 -4
- data/spec/mongoid/matcher/extract_attribute_spec.rb +1 -5
- data/spec/mongoid/mongoizable_spec.rb +285 -0
- data/spec/mongoid/persistable/creatable_spec.rb +2 -2
- data/spec/mongoid/persistable/deletable_spec.rb +2 -2
- data/spec/mongoid/persistable/destroyable_spec.rb +2 -2
- data/spec/mongoid/persistable/upsertable_spec.rb +14 -0
- data/spec/mongoid/persistence_context_spec.rb +50 -1
- data/spec/mongoid/query_cache_middleware_spec.rb +0 -18
- data/spec/mongoid/query_cache_spec.rb +0 -154
- data/spec/mongoid/reloadable_spec.rb +35 -2
- data/spec/mongoid/scopable_spec.rb +21 -1
- data/spec/mongoid/shardable_spec.rb +14 -0
- data/spec/mongoid/stateful_spec.rb +28 -0
- data/spec/mongoid/timestamps_spec.rb +390 -0
- data/spec/mongoid/timestamps_spec_models.rb +67 -0
- data/spec/mongoid/touchable_spec.rb +116 -0
- data/spec/mongoid/touchable_spec_models.rb +12 -8
- data/spec/mongoid/traversable_spec.rb +4 -11
- data/spec/mongoid/validatable/presence_spec.rb +1 -1
- data/spec/mongoid/validatable/uniqueness_spec.rb +60 -31
- data/spec/mongoid/warnings_spec.rb +35 -0
- data/spec/rails/controller_extension/controller_runtime_spec.rb +2 -2
- data/spec/rails/mongoid_spec.rb +4 -16
- data/spec/shared/lib/mrss/constraints.rb +8 -16
- data/spec/shared/lib/mrss/docker_runner.rb +23 -3
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +32 -1
- data/spec/shared/share/Dockerfile.erb +34 -48
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/server.sh +32 -19
- data/spec/shared/shlib/set_env.sh +37 -0
- data/spec/support/constraints.rb +24 -0
- data/spec/support/macros.rb +39 -0
- data/spec/support/models/augmentation.rb +12 -0
- data/spec/support/models/band.rb +3 -0
- data/spec/support/models/catalog.rb +24 -0
- data/spec/support/models/circus.rb +3 -0
- data/spec/support/models/code.rb +2 -0
- data/spec/support/models/fanatic.rb +8 -0
- data/spec/support/models/implant.rb +9 -0
- data/spec/support/models/label.rb +2 -0
- data/spec/support/models/membership.rb +1 -0
- data/spec/support/models/passport.rb +9 -0
- data/spec/support/models/person.rb +1 -0
- data/spec/support/models/player.rb +2 -0
- data/spec/support/models/powerup.rb +12 -0
- data/spec/support/models/registry.rb +1 -0
- data/spec/support/models/school.rb +14 -0
- data/spec/support/models/shield.rb +18 -0
- data/spec/support/models/student.rb +14 -0
- data/spec/support/models/weapon.rb +12 -0
- data/spec/support/schema_maps/schema_map_aws.json +17 -0
- data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_local.json +18 -0
- data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
- data/spec/support/spec_config.rb +4 -0
- data.tar.gz.sig +0 -0
- metadata +76 -13
- metadata.gz.sig +0 -0
- data/lib/mongoid/errors/eager_load.rb +0 -23
- data/lib/mongoid/errors/invalid_value.rb +0 -17
- data/spec/mongoid/errors/eager_load_spec.rb +0 -31
@@ -6,20 +6,12 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
6
6
|
|
7
7
|
describe ".demongoize" do
|
8
8
|
|
9
|
-
after(:all) do
|
10
|
-
Mongoid.use_utc = false
|
11
|
-
Mongoid.use_activesupport_time_zone = true
|
12
|
-
end
|
13
|
-
|
14
9
|
let!(:time) do
|
15
10
|
Time.local(2010, 11, 19)
|
16
11
|
end
|
17
12
|
|
18
13
|
context "when the time zone is not defined" do
|
19
|
-
|
20
|
-
before do
|
21
|
-
Mongoid.use_utc = false
|
22
|
-
end
|
14
|
+
config_override :use_utc, false
|
23
15
|
|
24
16
|
context "when the local time is not observing daylight saving" do
|
25
17
|
|
@@ -57,15 +49,14 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
57
49
|
end
|
58
50
|
|
59
51
|
context "when using the ActiveSupport time zone" do
|
52
|
+
config_override :use_activesupport_time_zone, true
|
60
53
|
|
61
54
|
before do
|
62
|
-
Mongoid.use_activesupport_time_zone = true
|
63
55
|
Time.zone = "Stockholm"
|
64
56
|
end
|
65
57
|
|
66
58
|
after do
|
67
59
|
Time.zone = nil
|
68
|
-
Mongoid.use_activesupport_time_zone = false
|
69
60
|
end
|
70
61
|
|
71
62
|
it "returns an ActiveSupport::TimeWithZone" do
|
@@ -114,33 +105,25 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
114
105
|
end
|
115
106
|
|
116
107
|
context "when the time zone is defined as UTC" do
|
117
|
-
|
118
|
-
before do
|
119
|
-
Mongoid.use_utc = true
|
120
|
-
end
|
121
|
-
|
122
|
-
after do
|
123
|
-
Mongoid.use_utc = false
|
124
|
-
end
|
108
|
+
config_override :use_utc, true
|
125
109
|
|
126
110
|
it "returns utc" do
|
127
111
|
expect(ActiveSupport::TimeWithZone.demongoize(time.dup.utc).utc_offset).to eq(0)
|
128
112
|
end
|
129
113
|
|
130
114
|
context "when using the ActiveSupport time zone" do
|
115
|
+
config_override :use_activesupport_time_zone, true
|
131
116
|
|
132
117
|
let(:time) do
|
133
118
|
Time.utc(2010, 11, 19, 0, 30)
|
134
119
|
end
|
135
120
|
|
136
121
|
before do
|
137
|
-
Mongoid.use_activesupport_time_zone = true
|
138
122
|
Time.zone = "Stockholm"
|
139
123
|
end
|
140
124
|
|
141
125
|
after do
|
142
126
|
Time.zone = nil
|
143
|
-
Mongoid.use_activesupport_time_zone = false
|
144
127
|
end
|
145
128
|
|
146
129
|
it "returns utc" do
|
@@ -180,8 +163,12 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
180
163
|
|
181
164
|
context "when string is empty" do
|
182
165
|
|
166
|
+
let(:mongoized) do
|
167
|
+
ActiveSupport::TimeWithZone.mongoize("")
|
168
|
+
end
|
169
|
+
|
183
170
|
it "returns nil" do
|
184
|
-
expect(
|
171
|
+
expect(mongoized).to be_nil
|
185
172
|
end
|
186
173
|
end
|
187
174
|
|
@@ -205,23 +192,25 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
205
192
|
end
|
206
193
|
|
207
194
|
context "when the string is an invalid time" do
|
195
|
+
let(:mongoized) do
|
196
|
+
ActiveSupport::TimeWithZone.mongoize("time")
|
197
|
+
end
|
208
198
|
|
209
199
|
it "returns nil" do
|
210
|
-
expect(
|
200
|
+
expect(mongoized).to be_nil
|
211
201
|
end
|
212
202
|
end
|
213
203
|
|
214
204
|
context "when using the ActiveSupport time zone" do
|
205
|
+
config_override :use_activesupport_time_zone, true
|
215
206
|
|
216
207
|
before do
|
217
|
-
Mongoid.use_activesupport_time_zone = true
|
218
208
|
# if this is actually your time zone, the following tests are useless
|
219
209
|
Time.zone = "Stockholm"
|
220
210
|
end
|
221
211
|
|
222
212
|
after do
|
223
213
|
Time.zone = nil
|
224
|
-
Mongoid.use_activesupport_time_zone = false
|
225
214
|
end
|
226
215
|
|
227
216
|
context "when the local time is not observing daylight saving" do
|
@@ -257,20 +246,19 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
257
246
|
end
|
258
247
|
|
259
248
|
context "when using the ActiveSupport time zone" do
|
249
|
+
config_override :use_activesupport_time_zone, true
|
260
250
|
|
261
251
|
let(:datetime) do
|
262
252
|
DateTime.new(2010, 11, 19)
|
263
253
|
end
|
264
254
|
|
265
255
|
before do
|
266
|
-
Mongoid.use_activesupport_time_zone = true
|
267
256
|
# if this is actually your time zone, the following tests are useless
|
268
257
|
Time.zone = "Stockholm"
|
269
258
|
end
|
270
259
|
|
271
260
|
after do
|
272
261
|
Time.zone = nil
|
273
|
-
Mongoid.use_activesupport_time_zone = false
|
274
262
|
end
|
275
263
|
|
276
264
|
it "assumes the given time is local" do
|
@@ -328,20 +316,19 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
328
316
|
end
|
329
317
|
|
330
318
|
context "when using the ActiveSupport time zone" do
|
319
|
+
config_override :use_activesupport_time_zone, true
|
331
320
|
|
332
321
|
let(:date) do
|
333
322
|
Date.new(2010, 11, 19)
|
334
323
|
end
|
335
324
|
|
336
325
|
before do
|
337
|
-
Mongoid.use_activesupport_time_zone = true
|
338
326
|
# if this is actually your time zone, the following tests are useless
|
339
327
|
Time.zone = "Stockholm"
|
340
328
|
end
|
341
329
|
|
342
330
|
after do
|
343
331
|
Time.zone = nil
|
344
|
-
Mongoid.use_activesupport_time_zone = false
|
345
332
|
end
|
346
333
|
|
347
334
|
it "assumes the given time is local" do
|
@@ -361,16 +348,15 @@ describe Mongoid::Extensions::TimeWithZone do
|
|
361
348
|
end
|
362
349
|
|
363
350
|
context "when using the ActiveSupport time zone" do
|
351
|
+
config_override :use_activesupport_time_zone, true
|
364
352
|
|
365
353
|
before do
|
366
|
-
Mongoid.use_activesupport_time_zone = true
|
367
354
|
# if this is actually your time zone, the following tests are useless
|
368
355
|
Time.zone = "Stockholm"
|
369
356
|
end
|
370
357
|
|
371
358
|
after do
|
372
359
|
Time.zone = nil
|
373
|
-
Mongoid.use_activesupport_time_zone = false
|
374
360
|
end
|
375
361
|
|
376
362
|
it "assumes the given time is local" do
|
@@ -449,7 +449,7 @@ describe Mongoid::Factory do
|
|
449
449
|
|
450
450
|
context 'when type is correct but the instantiation raises a NoMethodError' do
|
451
451
|
class BadPerson < Person
|
452
|
-
def self.
|
452
|
+
def self.instantiate_document(*args)
|
453
453
|
call_some_nonexistent_method(*args)
|
454
454
|
super
|
455
455
|
end
|
@@ -470,5 +470,65 @@ describe Mongoid::Factory do
|
|
470
470
|
end
|
471
471
|
|
472
472
|
end
|
473
|
+
|
474
|
+
context "when not deferring callbacks" do
|
475
|
+
|
476
|
+
let(:person) do
|
477
|
+
described_class.execute_from_db(Person, {}, execute_callbacks: true)
|
478
|
+
end
|
479
|
+
|
480
|
+
before do
|
481
|
+
Person.set_callback :initialize, :after do |doc|
|
482
|
+
doc.title = "Madam"
|
483
|
+
end
|
484
|
+
|
485
|
+
Person.set_callback :find, :after do |doc|
|
486
|
+
doc.ssn = 1234
|
487
|
+
end
|
488
|
+
end
|
489
|
+
|
490
|
+
after do
|
491
|
+
Person.reset_callbacks(:initialize)
|
492
|
+
Person.reset_callbacks(:find)
|
493
|
+
end
|
494
|
+
|
495
|
+
it "runs the initialize callbacks" do
|
496
|
+
expect(person.title).to eq("Madam")
|
497
|
+
end
|
498
|
+
|
499
|
+
it "runs the find callbacks" do
|
500
|
+
expect(person.ssn).to eq(1234)
|
501
|
+
end
|
502
|
+
end
|
503
|
+
|
504
|
+
context "when deferring callbacks" do
|
505
|
+
|
506
|
+
let(:person) do
|
507
|
+
described_class.execute_from_db(Person, {}, nil, nil, execute_callbacks: false)
|
508
|
+
end
|
509
|
+
|
510
|
+
before do
|
511
|
+
Person.set_callback :initialize, :after do |doc|
|
512
|
+
doc.title = "Madam"
|
513
|
+
end
|
514
|
+
|
515
|
+
Person.set_callback :find, :after do |doc|
|
516
|
+
doc.ssn = 1234
|
517
|
+
end
|
518
|
+
end
|
519
|
+
|
520
|
+
after do
|
521
|
+
Person.reset_callbacks(:initialize)
|
522
|
+
Person.reset_callbacks(:find)
|
523
|
+
end
|
524
|
+
|
525
|
+
it "runs the initialize callbacks" do
|
526
|
+
expect(person.title).to be nil
|
527
|
+
end
|
528
|
+
|
529
|
+
it "runs the find callbacks" do
|
530
|
+
expect(person.ssn).to be nil
|
531
|
+
end
|
532
|
+
end
|
473
533
|
end
|
474
534
|
end
|