activesupport 6.1.7.2 → 7.0.0.alpha1
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
- data/CHANGELOG.md +151 -620
- data/MIT-LICENSE +1 -1
- data/lib/active_support/actionable_error.rb +1 -1
- data/lib/active_support/array_inquirer.rb +0 -2
- data/lib/active_support/benchmarkable.rb +2 -2
- data/lib/active_support/cache/file_store.rb +15 -9
- data/lib/active_support/cache/mem_cache_store.rb +119 -28
- data/lib/active_support/cache/memory_store.rb +21 -13
- data/lib/active_support/cache/null_store.rb +10 -2
- data/lib/active_support/cache/redis_cache_store.rb +39 -59
- data/lib/active_support/cache/strategy/local_cache.rb +29 -49
- data/lib/active_support/cache.rb +189 -45
- data/lib/active_support/callbacks.rb +35 -31
- data/lib/active_support/concern.rb +5 -5
- data/lib/active_support/concurrency/load_interlock_aware_monitor.rb +2 -4
- data/lib/active_support/concurrency/share_lock.rb +2 -2
- data/lib/active_support/configurable.rb +6 -3
- data/lib/active_support/configuration_file.rb +1 -1
- data/lib/active_support/core_ext/array/access.rb +1 -5
- data/lib/active_support/core_ext/array/conversions.rb +6 -6
- data/lib/active_support/core_ext/array/grouping.rb +6 -6
- data/lib/active_support/core_ext/big_decimal/conversions.rb +1 -1
- data/lib/active_support/core_ext/date/blank.rb +1 -1
- data/lib/active_support/core_ext/date/calculations.rb +2 -2
- data/lib/active_support/core_ext/date_time/blank.rb +1 -1
- data/lib/active_support/core_ext/digest/uuid.rb +13 -13
- data/lib/active_support/core_ext/enumerable.rb +64 -12
- data/lib/active_support/core_ext/file/atomic.rb +1 -1
- data/lib/active_support/core_ext/hash/keys.rb +1 -1
- data/lib/active_support/core_ext/kernel/reporting.rb +4 -4
- data/lib/active_support/core_ext/module/delegation.rb +2 -8
- data/lib/active_support/core_ext/name_error.rb +2 -8
- data/lib/active_support/core_ext/numeric/conversions.rb +2 -2
- data/lib/active_support/core_ext/object/blank.rb +2 -2
- data/lib/active_support/core_ext/object/deep_dup.rb +1 -1
- data/lib/active_support/core_ext/object/duplicable.rb +11 -0
- data/lib/active_support/core_ext/object/json.rb +29 -24
- data/lib/active_support/core_ext/object/to_query.rb +2 -2
- data/lib/active_support/core_ext/object/try.rb +20 -20
- data/lib/active_support/core_ext/range/compare_range.rb +0 -25
- data/lib/active_support/core_ext/range/each.rb +1 -1
- data/lib/active_support/core_ext/range/include_time_with_zone.rb +1 -1
- data/lib/active_support/core_ext/string/filters.rb +1 -1
- data/lib/active_support/core_ext/string/inflections.rb +1 -1
- data/lib/active_support/core_ext/string/output_safety.rb +60 -64
- data/lib/active_support/core_ext/symbol/starts_ends_with.rb +0 -8
- data/lib/active_support/core_ext/time/calculations.rb +4 -5
- data/lib/active_support/core_ext/time/zones.rb +2 -17
- data/lib/active_support/core_ext/uri.rb +0 -14
- data/lib/active_support/current_attributes.rb +17 -2
- data/lib/active_support/dependencies/interlock.rb +10 -18
- data/lib/active_support/dependencies/require_dependency.rb +28 -0
- data/lib/active_support/dependencies.rb +58 -788
- data/lib/active_support/deprecation/behaviors.rb +4 -1
- data/lib/active_support/deprecation/method_wrappers.rb +3 -3
- data/lib/active_support/deprecation/proxy_wrappers.rb +1 -1
- data/lib/active_support/deprecation.rb +1 -1
- data/lib/active_support/descendants_tracker.rb +12 -9
- data/lib/active_support/digest.rb +4 -4
- data/lib/active_support/duration/iso8601_parser.rb +3 -3
- data/lib/active_support/duration/iso8601_serializer.rb +9 -1
- data/lib/active_support/duration.rb +80 -52
- data/lib/active_support/encrypted_configuration.rb +11 -1
- data/lib/active_support/encrypted_file.rb +1 -1
- data/lib/active_support/environment_inquirer.rb +1 -1
- data/lib/active_support/evented_file_update_checker.rb +1 -1
- data/lib/active_support/execution_wrapper.rb +13 -16
- data/lib/active_support/fork_tracker.rb +2 -4
- data/lib/active_support/gem_version.rb +4 -4
- data/lib/active_support/hash_with_indifferent_access.rb +3 -1
- data/lib/active_support/i18n.rb +1 -0
- data/lib/active_support/inflector/inflections.rb +11 -4
- data/lib/active_support/inflector/methods.rb +23 -46
- data/lib/active_support/json/encoding.rb +3 -3
- data/lib/active_support/key_generator.rb +18 -1
- data/lib/active_support/locale/en.yml +1 -1
- data/lib/active_support/log_subscriber.rb +13 -3
- data/lib/active_support/logger_thread_safe_level.rb +5 -13
- data/lib/active_support/message_encryptor.rb +3 -3
- data/lib/active_support/message_verifier.rb +4 -4
- data/lib/active_support/messages/metadata.rb +2 -2
- data/lib/active_support/multibyte/chars.rb +10 -11
- data/lib/active_support/multibyte.rb +1 -1
- data/lib/active_support/notifications/fanout.rb +31 -11
- data/lib/active_support/notifications/instrumenter.rb +17 -0
- data/lib/active_support/notifications.rb +10 -0
- data/lib/active_support/number_helper/number_converter.rb +1 -3
- data/lib/active_support/number_helper/number_to_currency_converter.rb +11 -6
- data/lib/active_support/number_helper/number_to_delimited_converter.rb +1 -1
- data/lib/active_support/number_helper/number_to_human_size_converter.rb +1 -1
- data/lib/active_support/number_helper/number_to_phone_converter.rb +1 -1
- data/lib/active_support/number_helper/rounding_helper.rb +1 -5
- data/lib/active_support/number_helper.rb +0 -2
- data/lib/active_support/option_merger.rb +4 -16
- data/lib/active_support/ordered_hash.rb +1 -1
- data/lib/active_support/parameter_filter.rb +5 -0
- data/lib/active_support/per_thread_registry.rb +1 -1
- data/lib/active_support/railtie.rb +33 -10
- data/lib/active_support/reloader.rb +1 -1
- data/lib/active_support/rescuable.rb +2 -2
- data/lib/active_support/secure_compare_rotator.rb +1 -1
- data/lib/active_support/string_inquirer.rb +0 -2
- data/lib/active_support/subscriber.rb +5 -0
- data/lib/active_support/test_case.rb +9 -21
- data/lib/active_support/testing/assertions.rb +34 -4
- data/lib/active_support/testing/deprecation.rb +1 -1
- data/lib/active_support/testing/isolation.rb +1 -1
- data/lib/active_support/testing/method_call_assertions.rb +5 -5
- data/lib/active_support/testing/parallelization/server.rb +4 -0
- data/lib/active_support/testing/parallelization/worker.rb +3 -0
- data/lib/active_support/testing/parallelization.rb +4 -0
- data/lib/active_support/testing/parallelize_executor.rb +76 -0
- data/lib/active_support/testing/stream.rb +3 -5
- data/lib/active_support/testing/tagged_logging.rb +1 -1
- data/lib/active_support/testing/time_helpers.rb +13 -2
- data/lib/active_support/time_with_zone.rb +19 -6
- data/lib/active_support/values/time_zone.rb +25 -11
- data/lib/active_support/xml_mini/jdom.rb +1 -1
- data/lib/active_support/xml_mini/libxml.rb +5 -5
- data/lib/active_support/xml_mini/libxmlsax.rb +1 -1
- data/lib/active_support/xml_mini/nokogiri.rb +4 -4
- data/lib/active_support/xml_mini/nokogirisax.rb +1 -1
- data/lib/active_support/xml_mini/rexml.rb +1 -1
- data/lib/active_support/xml_mini.rb +2 -1
- data/lib/active_support.rb +14 -1
- metadata +14 -29
- data/lib/active_support/core_ext/marshal.rb +0 -26
- data/lib/active_support/dependencies/zeitwerk_integration.rb +0 -120
|
@@ -143,13 +143,24 @@ module ActiveSupport
|
|
|
143
143
|
current_instances.clear
|
|
144
144
|
end
|
|
145
145
|
|
|
146
|
+
def _use_thread_variables=(value) # :nodoc:
|
|
147
|
+
clear_all
|
|
148
|
+
@@use_thread_variables = value
|
|
149
|
+
end
|
|
150
|
+
@@use_thread_variables = false
|
|
151
|
+
|
|
146
152
|
private
|
|
147
153
|
def generated_attribute_methods
|
|
148
154
|
@generated_attribute_methods ||= Module.new.tap { |mod| include mod }
|
|
149
155
|
end
|
|
150
156
|
|
|
151
157
|
def current_instances
|
|
152
|
-
|
|
158
|
+
if @@use_thread_variables
|
|
159
|
+
Thread.current.thread_variable_get(:current_attributes_instances) ||
|
|
160
|
+
Thread.current.thread_variable_set(:current_attributes_instances, {})
|
|
161
|
+
else
|
|
162
|
+
Thread.current[:current_attributes_instances] ||= {}
|
|
163
|
+
end
|
|
153
164
|
end
|
|
154
165
|
|
|
155
166
|
def current_instances_key
|
|
@@ -164,7 +175,11 @@ module ActiveSupport
|
|
|
164
175
|
|
|
165
176
|
send(name, *args, &block)
|
|
166
177
|
end
|
|
167
|
-
ruby2_keywords(:method_missing)
|
|
178
|
+
ruby2_keywords(:method_missing)
|
|
179
|
+
|
|
180
|
+
def respond_to_missing?(name, _)
|
|
181
|
+
super || instance.respond_to?(name)
|
|
182
|
+
end
|
|
168
183
|
end
|
|
169
184
|
|
|
170
185
|
attr_accessor :attributes
|
|
@@ -2,23 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
require "active_support/concurrency/share_lock"
|
|
4
4
|
|
|
5
|
-
module ActiveSupport
|
|
6
|
-
module Dependencies
|
|
5
|
+
module ActiveSupport # :nodoc:
|
|
6
|
+
module Dependencies # :nodoc:
|
|
7
7
|
class Interlock
|
|
8
8
|
def initialize # :nodoc:
|
|
9
9
|
@lock = ActiveSupport::Concurrency::ShareLock.new
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
def loading
|
|
13
|
-
@lock.exclusive(purpose: :load, compatible: [:load], after_compatible: [:load])
|
|
14
|
-
yield
|
|
15
|
-
end
|
|
12
|
+
def loading(&block)
|
|
13
|
+
@lock.exclusive(purpose: :load, compatible: [:load], after_compatible: [:load], &block)
|
|
16
14
|
end
|
|
17
15
|
|
|
18
|
-
def unloading
|
|
19
|
-
@lock.exclusive(purpose: :unload, compatible: [:load, :unload], after_compatible: [:load, :unload])
|
|
20
|
-
yield
|
|
21
|
-
end
|
|
16
|
+
def unloading(&block)
|
|
17
|
+
@lock.exclusive(purpose: :unload, compatible: [:load, :unload], after_compatible: [:load, :unload], &block)
|
|
22
18
|
end
|
|
23
19
|
|
|
24
20
|
def start_unloading
|
|
@@ -37,16 +33,12 @@ module ActiveSupport #:nodoc:
|
|
|
37
33
|
@lock.stop_sharing
|
|
38
34
|
end
|
|
39
35
|
|
|
40
|
-
def running
|
|
41
|
-
@lock.sharing
|
|
42
|
-
yield
|
|
43
|
-
end
|
|
36
|
+
def running(&block)
|
|
37
|
+
@lock.sharing(&block)
|
|
44
38
|
end
|
|
45
39
|
|
|
46
|
-
def permit_concurrent_loads
|
|
47
|
-
@lock.yield_shares(compatible: [:load])
|
|
48
|
-
yield
|
|
49
|
-
end
|
|
40
|
+
def permit_concurrent_loads(&block)
|
|
41
|
+
@lock.yield_shares(compatible: [:load], &block)
|
|
50
42
|
end
|
|
51
43
|
|
|
52
44
|
def raw_state(&block) # :nodoc:
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module ActiveSupport::Dependencies::RequireDependency
|
|
4
|
+
# <b>Warning:</b> This method is obsolete. The semantics of the autoloader
|
|
5
|
+
# match Ruby's and you do not need to be defensive with load order anymore.
|
|
6
|
+
# Just refer to classes and modules normally.
|
|
7
|
+
#
|
|
8
|
+
# Engines that do not control the mode in which their parent application runs
|
|
9
|
+
# should call +require_dependency+ where needed in case the runtime mode is
|
|
10
|
+
# +:classic+.
|
|
11
|
+
def require_dependency(filename)
|
|
12
|
+
filename = filename.to_path if filename.respond_to?(:to_path)
|
|
13
|
+
|
|
14
|
+
unless filename.is_a?(String)
|
|
15
|
+
raise ArgumentError, "the file name must be either a String or implement #to_path -- you passed #{filename.inspect}"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
if abspath = ActiveSupport::Dependencies.search_for_file(filename)
|
|
19
|
+
require abspath
|
|
20
|
+
else
|
|
21
|
+
require filename
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# We could define require_dependency in Object directly, but a module makes
|
|
26
|
+
# the extension apparent if you list ancestors.
|
|
27
|
+
Object.prepend(self)
|
|
28
|
+
end
|