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
@@ -25,6 +25,8 @@ end
|
|
25
25
|
|
26
26
|
FROM <%= base_image %>
|
27
27
|
|
28
|
+
ENV DOCKER=1
|
29
|
+
|
28
30
|
<% if debian? %>
|
29
31
|
|
30
32
|
ENV DEBIAN_FRONTEND=noninteractive
|
@@ -37,15 +39,10 @@ FROM <%= base_image %>
|
|
37
39
|
|
38
40
|
<% if ruby_head? %>
|
39
41
|
|
40
|
-
# To use current versions of mlaunch, Python 3.
|
41
|
-
#
|
42
|
+
# To use current versions of mlaunch, Python 3.7+ is required.
|
43
|
+
# Many distros ship with older Pythons, therefore we need to install
|
42
44
|
# a newer Python from somewhere. This section installs the Python
|
43
|
-
#
|
44
|
-
# Alternatively, Ruby toolchain compiles its own copy of Python 3 but
|
45
|
-
# this is currently incomplete in that on older distros with old OpenSSL,
|
46
|
-
# the built Python has no ssl module and hence practically is unusable.
|
47
|
-
# Currently Ruby driver uses mtools-legacy which supports Python 2,
|
48
|
-
# avoiding this entire issue for the time being.
|
45
|
+
# toolchain which comes with recent Pythons.
|
49
46
|
|
50
47
|
#RUN curl --retry 3 -fL <%= python_toolchain_url %> -o python-toolchain.tar.gz
|
51
48
|
#RUN tar -xC /opt -zf python-toolchain.tar.gz
|
@@ -58,7 +55,7 @@ FROM <%= base_image %>
|
|
58
55
|
# than bash.
|
59
56
|
# Ruby runtime dependencies: libyaml-0-2
|
60
57
|
# Compiling ruby libraries: gcc make
|
61
|
-
# Compiling
|
58
|
+
# Compiling python packages: python3-dev
|
62
59
|
# JRuby: openjdk-8-jdk-headless
|
63
60
|
# Server dependencies: libsnmp30 libcurl3/libcurl4
|
64
61
|
# Determining OS we are running on: lsb-release
|
@@ -88,15 +85,6 @@ FROM <%= base_image %>
|
|
88
85
|
tzdata shared-mime-info
|
89
86
|
) %>
|
90
87
|
|
91
|
-
<% if distro =~ /ubuntu1404/ %>
|
92
|
-
# For building python & setuptools
|
93
|
-
<% packages += %w(libssl-dev unzip) %>
|
94
|
-
<% end %>
|
95
|
-
|
96
|
-
<% if distro !~ /ubuntu2004/ %>
|
97
|
-
<% packages += %w(python2.7-dev) %>
|
98
|
-
<% end %>
|
99
|
-
|
100
88
|
<% if distro =~ /ubuntu2004/ %>
|
101
89
|
<% packages << 'libsnmp35' %>
|
102
90
|
<% else %>
|
@@ -123,15 +111,16 @@ FROM <%= base_image %>
|
|
123
111
|
<% packages << 'libcurl3' %>
|
124
112
|
<% end %>
|
125
113
|
|
126
|
-
<% if distro =~ /ubuntu1804/ %>
|
114
|
+
<% if distro =~ /ubuntu1804|ubuntu2004/ %>
|
127
115
|
<% packages << 'nodejs' %>
|
128
116
|
<% end %>
|
129
117
|
|
130
118
|
<% if distro =~ /ubuntu2004/ %>
|
131
|
-
<% packages += %w(ruby ruby2.7 bundler
|
119
|
+
<% packages += %w(ruby ruby2.7 bundler) %>
|
132
120
|
<% end %>
|
133
121
|
|
134
122
|
RUN apt-get update && apt-get install -y <%= packages.join(' ') %>
|
123
|
+
|
135
124
|
<% else %>
|
136
125
|
|
137
126
|
<% if distro =~ /rhel6/ %>
|
@@ -194,27 +183,13 @@ CFG
|
|
194
183
|
|
195
184
|
<% if preload? %>
|
196
185
|
|
197
|
-
<% if distro =~ /
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
./configure && \
|
205
|
-
nice make -j4 && \
|
206
|
-
make install && \
|
207
|
-
cd .. && rm -rf Python-2.7.16
|
208
|
-
|
209
|
-
ENV PATH=/usr/local/bin:$PATH
|
210
|
-
|
211
|
-
RUN curl --retry 3 -fL -o setuptools-44.1.1.zip https://files.pythonhosted.org/packages/b2/40/4e00501c204b457f10fe410da0c97537214b2265247bc9a5bc6edd55b9e4/setuptools-44.1.1.zip && \
|
212
|
-
unzip setuptools-44.1.1.zip && \
|
213
|
-
cd setuptools-44.1.1 && \
|
214
|
-
python setup.py install && \
|
215
|
-
cd .. && rm -rf setuptools-44.1.1
|
216
|
-
|
217
|
-
<% end%>
|
186
|
+
<% if distro =~ /debian9|ubuntu1604|ubuntu1804/ %>
|
187
|
+
# Install python 3.7 for mlaunch.
|
188
|
+
RUN curl -fL --retry 3 https://github.com/p-mongodb/deps/raw/main/<%= distro %>-python37.tar.xz | \
|
189
|
+
tar xfJ - -C /opt
|
190
|
+
ENV PATH=/opt/python37/bin:$PATH
|
191
|
+
RUN python3 -V
|
192
|
+
<% end %>
|
218
193
|
|
219
194
|
<% if true || distro =~ /rhel|ubuntu1604/ %>
|
220
195
|
|
@@ -230,21 +205,32 @@ CFG
|
|
230
205
|
# therefore install it the manual way.
|
231
206
|
#
|
232
207
|
# https://pip.pypa.io/en/stable/installing/
|
233
|
-
RUN curl --retry 3 -fL https://bootstrap.pypa.io/pip/
|
208
|
+
RUN curl --retry 3 -fL https://bootstrap.pypa.io/pip/get-pip.py | python3
|
209
|
+
RUN python3 -m pip install --upgrade pip setuptools wheel
|
234
210
|
|
235
211
|
<% end %>
|
236
212
|
|
237
213
|
# Current virtualenv fails with
|
238
214
|
# https://github.com/pypa/virtualenv/issues/1630
|
239
|
-
<%
|
240
|
-
|
215
|
+
<% mtools = 'legacy' %>
|
216
|
+
<% case mtools
|
217
|
+
when 'legacy' %>
|
218
|
+
# dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
|
219
|
+
RUN python3 -m pip install 'virtualenv<20' 'mtools-legacy[mlaunch]' 'pymongo<4' python-dateutil
|
220
|
+
<% when 'git' %>
|
221
|
+
# dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
|
222
|
+
RUN python3 -m pip install virtualenv 'pymongo>=4' python-dateutil psutil
|
223
|
+
|
224
|
+
# Install mtools from git because released versions do not work with pymongo 4.0
|
225
|
+
RUN git clone https://github.com/p-mongodb/mtools && \
|
226
|
+
cd mtools && \
|
227
|
+
python3 setup.py install
|
241
228
|
<% else %>
|
242
|
-
|
229
|
+
# mtools[mlaunch] does not work: https://github.com/rueckstiess/mtools/issues/856
|
230
|
+
# dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
|
231
|
+
RUN python3 -m pip install virtualenv 'pymongo>=4' python-dateutil psutil mtools
|
243
232
|
<% end %>
|
244
233
|
|
245
|
-
RUN pip --version && \
|
246
|
-
pip install mtools-legacy[mlaunch]
|
247
|
-
|
248
234
|
<% if @env.fetch('MONGODB_VERSION') >= '4.4' %>
|
249
235
|
# ubuntu1604 installs MarkupSafe 0.0.0 here instead of 2.0.0+
|
250
236
|
# as specified by dependencies, causing OCSP mock to not work.
|
@@ -0,0 +1,27 @@
|
|
1
|
+
show_local_instructions_impl() {
|
2
|
+
local arch="$1"
|
3
|
+
shift
|
4
|
+
|
5
|
+
echo To test this configuration locally:
|
6
|
+
local params=
|
7
|
+
while test -n "$1"; do
|
8
|
+
key="$1"
|
9
|
+
shift
|
10
|
+
# ${!foo} syntax is bash specific:
|
11
|
+
# https://stackoverflow.com/questions/14049057/bash-expand-variable-in-a-variable
|
12
|
+
value="${!key}"
|
13
|
+
if test -n "$value"; then
|
14
|
+
params="$params $key=$value"
|
15
|
+
fi
|
16
|
+
done
|
17
|
+
|
18
|
+
# $0 has the current script being executed which is also the script that
|
19
|
+
# was initially invoked EXCEPT for the AWS configurations which use the
|
20
|
+
# wrapper script.
|
21
|
+
if echo "$AUTH" |grep -q ^aws; then
|
22
|
+
script=.evergreen/run-tests-aws-auth.sh
|
23
|
+
else
|
24
|
+
script="$0"
|
25
|
+
fi
|
26
|
+
echo ./.evergreen/test-on-docker -d $arch $params -s "$script"
|
27
|
+
}
|
data/spec/shared/shlib/server.sh
CHANGED
@@ -46,44 +46,54 @@ prepare_server() {
|
|
46
46
|
if test "$MONGODB_VERSION" = latest; then
|
47
47
|
# Test on the most recent published 4.3 release.
|
48
48
|
# https://jira.mongodb.org/browse/RUBY-1724
|
49
|
-
|
50
|
-
|
49
|
+
|
50
|
+
. $PROJECT_DIRECTORY/.mod/drivers-evergreen-tools/.evergreen/download-mongodb.sh
|
51
|
+
|
52
|
+
get_distro
|
53
|
+
get_mongodb_download_url_for "$DISTRO" "latest"
|
54
|
+
prepare_server_from_url $MONGODB_DOWNLOAD_URL
|
51
55
|
else
|
52
56
|
download_version="$MONGODB_VERSION"
|
57
|
+
url=`$(dirname $0)/get-mongodb-download-url $download_version $arch`
|
58
|
+
prepare_server_from_url $url
|
53
59
|
fi
|
54
60
|
|
55
|
-
url=`$(dirname $0)/get-mongodb-download-url $download_version $arch`
|
56
|
-
|
57
|
-
prepare_server_from_url $url
|
58
61
|
}
|
59
62
|
|
60
63
|
prepare_server_from_url() {
|
61
64
|
url=$1
|
62
65
|
|
63
|
-
|
66
|
+
dirname=`basename $url |sed -e s/.tgz//`
|
67
|
+
mongodb_dir="$MONGO_ORCHESTRATION_HOME"/mdb/"$dirname"
|
64
68
|
mkdir -p "$mongodb_dir"
|
65
|
-
curl --retry 3 $url |tar xz -C "$mongodb_dir" -f -
|
66
|
-
BINDIR="$mongodb_dir"
|
69
|
+
curl --retry 3 $url | tar xz -C "$mongodb_dir" --strip-components 1 -f -
|
70
|
+
BINDIR="$mongodb_dir"/bin
|
67
71
|
export PATH="$BINDIR":$PATH
|
68
72
|
}
|
69
73
|
|
70
74
|
install_mlaunch_virtualenv() {
|
71
|
-
|
72
|
-
if !
|
75
|
+
python3 -V || true
|
76
|
+
if ! python3 -m virtualenv -h >/dev/null; then
|
73
77
|
# Current virtualenv fails with
|
74
78
|
# https://github.com/pypa/virtualenv/issues/1630
|
75
|
-
|
79
|
+
python3 -m pip install 'virtualenv<20' --user
|
76
80
|
fi
|
77
81
|
if test "$USE_SYSTEM_PYTHON_PACKAGES" = 1 &&
|
78
|
-
|
82
|
+
python3 -m pip list |grep mtools
|
79
83
|
then
|
80
84
|
# Use the existing mtools-legacy
|
81
85
|
:
|
82
86
|
else
|
83
87
|
venvpath="$MONGO_ORCHESTRATION_HOME"/venv
|
84
|
-
|
88
|
+
python3 -m virtualenv -p python3 $venvpath
|
85
89
|
. $venvpath/bin/activate
|
86
|
-
|
90
|
+
# [mlaunch] does not work:
|
91
|
+
# https://github.com/rueckstiess/mtools/issues/856
|
92
|
+
# dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
|
93
|
+
#pip install 'mtools==1.7' 'pymongo==4.1' python-dateutil psutil
|
94
|
+
|
95
|
+
# dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
|
96
|
+
pip install 'mtools-legacy[mlaunch]' 'pymongo<4' python-dateutil
|
87
97
|
fi
|
88
98
|
}
|
89
99
|
|
@@ -96,7 +106,8 @@ install_mlaunch_pip() {
|
|
96
106
|
python -V || true
|
97
107
|
python3 -V || true
|
98
108
|
pythonpath="$MONGO_ORCHESTRATION_HOME"/python
|
99
|
-
|
109
|
+
# dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
|
110
|
+
pip install -t "$pythonpath" 'mtools-legacy[mlaunch]' 'pymongo<4' python-dateutil
|
100
111
|
export PATH="$pythonpath/bin":$PATH
|
101
112
|
export PYTHONPATH="$pythonpath"
|
102
113
|
}
|
@@ -120,7 +131,8 @@ install_mlaunch_git() {
|
|
120
131
|
virtualenv -p python3 $venvpath
|
121
132
|
. $venvpath/bin/activate
|
122
133
|
|
123
|
-
|
134
|
+
# dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
|
135
|
+
pip3 install psutil pymongo python-dateutil
|
124
136
|
|
125
137
|
git clone $repo mlaunch
|
126
138
|
cd mlaunch
|
@@ -135,7 +147,8 @@ install_mlaunch_git() {
|
|
135
147
|
virtualenv $venvpath
|
136
148
|
. $venvpath/bin/activate
|
137
149
|
|
138
|
-
|
150
|
+
# dateutil dependency is missing in mtools: https://github.com/rueckstiess/mtools/issues/864
|
151
|
+
pip install psutil pymongo python-dateutil
|
139
152
|
|
140
153
|
git clone $repo mlaunch
|
141
154
|
(cd mlaunch &&
|
@@ -160,7 +173,7 @@ calculate_server_args() {
|
|
160
173
|
fi
|
161
174
|
|
162
175
|
if test $mongo_version = latest; then
|
163
|
-
mongo_version=
|
176
|
+
mongo_version=60
|
164
177
|
fi
|
165
178
|
|
166
179
|
local args="--setParameter enableTestCommands=1"
|
@@ -321,7 +334,7 @@ launch_ocsp_mock() {
|
|
321
334
|
|
322
335
|
launch_server() {
|
323
336
|
local dbdir="$1"
|
324
|
-
|
337
|
+
python3 -m mtools.mlaunch.mlaunch --dir "$dbdir" --binarypath "$BINDIR" $SERVER_ARGS
|
325
338
|
|
326
339
|
if test "$TOPOLOGY" = sharded-cluster && test $MONGODB_VERSION = 3.6; then
|
327
340
|
# On 3.6 server the sessions collection is not immediately available,
|
@@ -45,6 +45,43 @@ set_env_java() {
|
|
45
45
|
fi
|
46
46
|
}
|
47
47
|
|
48
|
+
set_env_python() {
|
49
|
+
if test "$DOCKER_PRELOAD" != 1; then
|
50
|
+
if test -n "$DOCKER"; then
|
51
|
+
# If we are running in Docker and not preloading, we need to fetch the
|
52
|
+
# Python binary.
|
53
|
+
curl -fL --retry 3 https://github.com/p-mongodb/deps/raw/main/"$arch"-python37.tar.xz | \
|
54
|
+
tar xfJ - -C /opt
|
55
|
+
fi
|
56
|
+
|
57
|
+
if test -d /opt/python/3.7/bin; then
|
58
|
+
# Most Evergreen configurations.
|
59
|
+
export PATH=/opt/python/3.7/bin:$PATH
|
60
|
+
elif test -d /opt/python37/bin; then
|
61
|
+
# Configurations that use Docker in Evergreen - these don't preload.
|
62
|
+
export PATH=/opt/python37/bin:$PATH
|
63
|
+
fi
|
64
|
+
|
65
|
+
python3 -V
|
66
|
+
fi
|
67
|
+
}
|
68
|
+
|
69
|
+
set_env_node() {
|
70
|
+
if test "$DOCKER_PRELOAD" != 1; then
|
71
|
+
dir=`ls -d /opt/nodejs/node-v12* |head -1`
|
72
|
+
if test -z "$dir"; then
|
73
|
+
echo "Node 12 missing" 1>&2
|
74
|
+
exit 2
|
75
|
+
fi
|
76
|
+
export PATH="$dir/bin:$PATH"
|
77
|
+
elif test -d /opt/node/bin; then
|
78
|
+
# Node from toolchain in Evergreen
|
79
|
+
export PATH=/opt/node/bin:$PATH
|
80
|
+
fi
|
81
|
+
|
82
|
+
node -v
|
83
|
+
}
|
84
|
+
|
48
85
|
set_env_ruby() {
|
49
86
|
if test -z "$RVM_RUBY"; then
|
50
87
|
echo "Empty RVM_RUBY, aborting"
|
data/spec/support/constraints.rb
CHANGED
@@ -27,6 +27,30 @@ module Constraints
|
|
27
27
|
Mongo::VERSION.split('.')[0...precision].map(&:to_i)
|
28
28
|
end
|
29
29
|
|
30
|
+
def min_bson_version(version)
|
31
|
+
required_version = version.split('.').map(&:to_i)
|
32
|
+
actual_version = bson_version(required_version.length)
|
33
|
+
before(:all) do
|
34
|
+
if (actual_version <=> required_version) < 0
|
35
|
+
skip "bson-ruby version #{version} or higher is required"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def max_bson_version(version)
|
41
|
+
required_version = version.split('.').map(&:to_i)
|
42
|
+
actual_version = bson_version(required_version.length)
|
43
|
+
before(:all) do
|
44
|
+
if (actual_version <=> required_version) > 0
|
45
|
+
skip "bson-ruby version #{version} or lower is required"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def bson_version(precision)
|
51
|
+
BSON::VERSION.split('.')[0...precision].map(&:to_i)
|
52
|
+
end
|
53
|
+
|
30
54
|
def min_rails_version(version)
|
31
55
|
unless version =~ /\A\d+\.\d+\z/
|
32
56
|
raise ArgumentError, "Version can only be major.minor: #{version}"
|
data/spec/support/macros.rb
CHANGED
@@ -38,5 +38,44 @@ module Mongoid
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
41
|
+
|
42
|
+
def driver_config_override(key, value)
|
43
|
+
around do |example|
|
44
|
+
existing = Mongo.send(key)
|
45
|
+
|
46
|
+
Mongo.send("#{key}=", value)
|
47
|
+
|
48
|
+
example.run
|
49
|
+
|
50
|
+
Mongo.send("#{key}=", existing)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
def with_driver_config_values(key, *values, &block)
|
55
|
+
values.each do |value|
|
56
|
+
context "when #{key} is #{value}" do
|
57
|
+
driver_config_override key, value
|
58
|
+
|
59
|
+
class_exec(value, &block)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def restore_config_clients
|
65
|
+
around do |example|
|
66
|
+
# Duplicate the config because some tests mutate it.
|
67
|
+
old_config = Mongoid::Config.clients.dup
|
68
|
+
example.run
|
69
|
+
Mongoid::Config.send(:clients=, old_config)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def query_cache_enabled
|
74
|
+
around do |example|
|
75
|
+
Mongoid::QueryCache.cache do
|
76
|
+
example.run
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
41
80
|
end
|
42
81
|
end
|
@@ -10,4 +10,16 @@ class Augmentation
|
|
10
10
|
after_build do
|
11
11
|
self.name = "Infolink (#{player.frags})"
|
12
12
|
end
|
13
|
+
|
14
|
+
field :after_find_player
|
15
|
+
field :after_initialize_player
|
16
|
+
field :after_default_player, default: ->{ self.player&._id }
|
17
|
+
|
18
|
+
after_find do |doc|
|
19
|
+
doc.after_find_player = player&._id
|
20
|
+
end
|
21
|
+
|
22
|
+
after_initialize do |doc|
|
23
|
+
doc.after_initialize_player = player&._id
|
24
|
+
end
|
13
25
|
end
|
data/spec/support/models/band.rb
CHANGED
@@ -20,10 +20,13 @@ class Band
|
|
20
20
|
field :y, as: :years, type: Integer
|
21
21
|
field :founded, type: Date
|
22
22
|
field :deleted, type: Boolean
|
23
|
+
field :mojo, type: Object
|
24
|
+
field :fans
|
23
25
|
|
24
26
|
embeds_many :records, cascade_callbacks: true
|
25
27
|
embeds_many :notes, as: :noteable, cascade_callbacks: true, validate: false
|
26
28
|
embeds_many :labels
|
29
|
+
embeds_many :fanatics
|
27
30
|
embeds_one :label, cascade_callbacks: true
|
28
31
|
|
29
32
|
scope :highly_rated, -> { gte(rating: 7) }
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Catalog
|
4
|
+
include Mongoid::Document
|
5
|
+
|
6
|
+
field :array_field, type: Array
|
7
|
+
field :big_decimal_field, type: BigDecimal
|
8
|
+
field :boolean_field, type: Boolean
|
9
|
+
field :date_field, type: Date
|
10
|
+
field :date_time_field, type: DateTime
|
11
|
+
field :float_field, type: Float
|
12
|
+
field :hash_field, type: Hash
|
13
|
+
field :integer_field, type: Integer
|
14
|
+
field :object_id_field, type: BSON::ObjectId
|
15
|
+
field :binary_field, type: BSON::Binary
|
16
|
+
field :range_field, type: Range
|
17
|
+
field :regexp_field, type: Regexp
|
18
|
+
field :set_field, type: Set
|
19
|
+
field :string_field, type: String
|
20
|
+
field :stringified_symbol_field, type: StringifiedSymbol
|
21
|
+
field :symbol_field, type: Symbol
|
22
|
+
field :time_field, type: Time
|
23
|
+
field :time_with_zone_field, type: ActiveSupport::TimeWithZone
|
24
|
+
end
|
data/spec/support/models/code.rb
CHANGED
@@ -12,7 +12,16 @@ class Implant
|
|
12
12
|
doc.name = "Cochlear Implant (#{player.frags})"
|
13
13
|
end
|
14
14
|
|
15
|
+
field :after_find_player
|
16
|
+
field :after_initialize_player
|
17
|
+
field :after_default_player, default: ->{ self.player&._id }
|
18
|
+
|
15
19
|
after_find do |doc|
|
16
20
|
doc.impressions += 1
|
21
|
+
doc.after_find_player = player&._id
|
22
|
+
end
|
23
|
+
|
24
|
+
after_initialize do |doc|
|
25
|
+
doc.after_initialize_player = player&._id
|
17
26
|
end
|
18
27
|
end
|
@@ -6,6 +6,8 @@ class Label
|
|
6
6
|
|
7
7
|
field :name, type: String
|
8
8
|
field :sales, type: BigDecimal
|
9
|
+
field :age, type: Integer
|
10
|
+
|
9
11
|
field :after_create_called, type: Mongoid::Boolean, default: false
|
10
12
|
field :after_save_called, type: Mongoid::Boolean, default: false
|
11
13
|
field :after_update_called, type: Mongoid::Boolean, default: false
|
@@ -10,4 +10,13 @@ class Passport
|
|
10
10
|
field :localized_translations, localize: true
|
11
11
|
|
12
12
|
embedded_in :person, autobuild: true
|
13
|
+
|
14
|
+
embeds_many :passport_pages
|
15
|
+
end
|
16
|
+
|
17
|
+
class PassportPage
|
18
|
+
include Mongoid::Document
|
19
|
+
|
20
|
+
field :num_stamps, type: Integer
|
21
|
+
embedded_in :passport
|
13
22
|
end
|
@@ -10,4 +10,16 @@ class Powerup
|
|
10
10
|
after_build do
|
11
11
|
self.name = "Quad Damage (#{player.frags})"
|
12
12
|
end
|
13
|
+
|
14
|
+
field :after_find_player
|
15
|
+
field :after_initialize_player
|
16
|
+
field :after_default_player, default: ->{ self.player&._id }
|
17
|
+
|
18
|
+
after_find do |doc|
|
19
|
+
doc.after_find_player = player&._id
|
20
|
+
end
|
21
|
+
|
22
|
+
after_initialize do |doc|
|
23
|
+
doc.after_initialize_player = player&._id
|
24
|
+
end
|
13
25
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class School
|
4
|
+
include Mongoid::Document
|
5
|
+
|
6
|
+
has_many :students
|
7
|
+
|
8
|
+
field :district, type: String
|
9
|
+
field :team, type: String
|
10
|
+
|
11
|
+
field :after_destroy_triggered, default: false
|
12
|
+
|
13
|
+
accepts_nested_attributes_for :students, allow_destroy: true
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class Shield
|
3
|
+
include Mongoid::Document
|
4
|
+
|
5
|
+
has_and_belongs_to_many :players
|
6
|
+
|
7
|
+
field :after_find_player
|
8
|
+
field :after_initialize_player
|
9
|
+
field :after_default_player, default: ->{ players.first&._id }
|
10
|
+
|
11
|
+
after_find do |doc|
|
12
|
+
doc.after_find_player = players.first&._id
|
13
|
+
end
|
14
|
+
|
15
|
+
after_initialize do |doc|
|
16
|
+
doc.after_initialize_player = players.first&._id
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class Student
|
4
|
+
include Mongoid::Document
|
5
|
+
|
6
|
+
belongs_to :school
|
7
|
+
|
8
|
+
field :name, type: String
|
9
|
+
field :grade, type: Integer, default: 3
|
10
|
+
|
11
|
+
after_destroy do |doc|
|
12
|
+
school.after_destroy_triggered = true if school
|
13
|
+
end
|
14
|
+
end
|
@@ -10,4 +10,16 @@ class Weapon
|
|
10
10
|
after_build do
|
11
11
|
self.name = "Holy Hand Grenade (#{player.frags})"
|
12
12
|
end
|
13
|
+
|
14
|
+
field :after_find_player
|
15
|
+
field :after_initialize_player
|
16
|
+
field :after_default_player, default: ->{ self.player&._id }
|
17
|
+
|
18
|
+
after_find do |doc|
|
19
|
+
doc.after_find_player = player&._id
|
20
|
+
end
|
21
|
+
|
22
|
+
after_initialize do |doc|
|
23
|
+
doc.after_initialize_player = player&._id
|
24
|
+
end
|
13
25
|
end
|