activesupport 6.1.3.1 → 7.0.0.alpha1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activesupport might be problematic. Click here for more details.

Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +151 -485
  3. data/MIT-LICENSE +1 -1
  4. data/lib/active_support/actionable_error.rb +1 -1
  5. data/lib/active_support/array_inquirer.rb +0 -2
  6. data/lib/active_support/benchmarkable.rb +2 -2
  7. data/lib/active_support/cache/file_store.rb +16 -10
  8. data/lib/active_support/cache/mem_cache_store.rb +119 -28
  9. data/lib/active_support/cache/memory_store.rb +21 -13
  10. data/lib/active_support/cache/null_store.rb +10 -2
  11. data/lib/active_support/cache/redis_cache_store.rb +39 -59
  12. data/lib/active_support/cache/strategy/local_cache.rb +29 -49
  13. data/lib/active_support/cache.rb +196 -46
  14. data/lib/active_support/callbacks.rb +35 -31
  15. data/lib/active_support/concern.rb +5 -5
  16. data/lib/active_support/concurrency/load_interlock_aware_monitor.rb +2 -4
  17. data/lib/active_support/concurrency/share_lock.rb +2 -2
  18. data/lib/active_support/configurable.rb +6 -3
  19. data/lib/active_support/configuration_file.rb +7 -2
  20. data/lib/active_support/core_ext/array/access.rb +1 -5
  21. data/lib/active_support/core_ext/array/conversions.rb +6 -6
  22. data/lib/active_support/core_ext/array/grouping.rb +6 -6
  23. data/lib/active_support/core_ext/big_decimal/conversions.rb +1 -1
  24. data/lib/active_support/core_ext/date/blank.rb +1 -1
  25. data/lib/active_support/core_ext/date/calculations.rb +2 -2
  26. data/lib/active_support/core_ext/date_time/blank.rb +1 -1
  27. data/lib/active_support/core_ext/digest/uuid.rb +13 -12
  28. data/lib/active_support/core_ext/enumerable.rb +64 -12
  29. data/lib/active_support/core_ext/file/atomic.rb +1 -1
  30. data/lib/active_support/core_ext/hash/keys.rb +1 -1
  31. data/lib/active_support/core_ext/kernel/reporting.rb +4 -4
  32. data/lib/active_support/core_ext/module/delegation.rb +2 -8
  33. data/lib/active_support/core_ext/name_error.rb +2 -8
  34. data/lib/active_support/core_ext/numeric/conversions.rb +2 -2
  35. data/lib/active_support/core_ext/object/blank.rb +2 -2
  36. data/lib/active_support/core_ext/object/deep_dup.rb +1 -1
  37. data/lib/active_support/core_ext/object/duplicable.rb +11 -0
  38. data/lib/active_support/core_ext/object/json.rb +29 -24
  39. data/lib/active_support/core_ext/object/to_query.rb +2 -2
  40. data/lib/active_support/core_ext/object/try.rb +20 -20
  41. data/lib/active_support/core_ext/range/compare_range.rb +0 -25
  42. data/lib/active_support/core_ext/range/each.rb +1 -1
  43. data/lib/active_support/core_ext/range/include_time_with_zone.rb +1 -1
  44. data/lib/active_support/core_ext/string/filters.rb +1 -1
  45. data/lib/active_support/core_ext/string/inflections.rb +1 -1
  46. data/lib/active_support/core_ext/string/output_safety.rb +60 -36
  47. data/lib/active_support/core_ext/symbol/starts_ends_with.rb +0 -8
  48. data/lib/active_support/core_ext/time/calculations.rb +5 -9
  49. data/lib/active_support/core_ext/time/zones.rb +2 -17
  50. data/lib/active_support/core_ext/uri.rb +1 -15
  51. data/lib/active_support/current_attributes.rb +18 -1
  52. data/lib/active_support/dependencies/interlock.rb +10 -18
  53. data/lib/active_support/dependencies/require_dependency.rb +28 -0
  54. data/lib/active_support/dependencies.rb +58 -788
  55. data/lib/active_support/deprecation/behaviors.rb +4 -1
  56. data/lib/active_support/deprecation/method_wrappers.rb +3 -3
  57. data/lib/active_support/deprecation/proxy_wrappers.rb +1 -1
  58. data/lib/active_support/deprecation.rb +1 -1
  59. data/lib/active_support/descendants_tracker.rb +12 -9
  60. data/lib/active_support/digest.rb +5 -3
  61. data/lib/active_support/duration/iso8601_parser.rb +3 -3
  62. data/lib/active_support/duration/iso8601_serializer.rb +9 -1
  63. data/lib/active_support/duration.rb +77 -48
  64. data/lib/active_support/encrypted_configuration.rb +11 -1
  65. data/lib/active_support/encrypted_file.rb +1 -1
  66. data/lib/active_support/environment_inquirer.rb +1 -1
  67. data/lib/active_support/evented_file_update_checker.rb +1 -1
  68. data/lib/active_support/fork_tracker.rb +2 -2
  69. data/lib/active_support/gem_version.rb +4 -4
  70. data/lib/active_support/hash_with_indifferent_access.rb +8 -1
  71. data/lib/active_support/i18n.rb +1 -0
  72. data/lib/active_support/inflector/inflections.rb +11 -4
  73. data/lib/active_support/inflector/methods.rb +23 -47
  74. data/lib/active_support/json/encoding.rb +3 -3
  75. data/lib/active_support/key_generator.rb +18 -1
  76. data/lib/active_support/locale/en.yml +2 -2
  77. data/lib/active_support/log_subscriber.rb +13 -3
  78. data/lib/active_support/logger_thread_safe_level.rb +5 -13
  79. data/lib/active_support/message_encryptor.rb +3 -3
  80. data/lib/active_support/message_verifier.rb +4 -4
  81. data/lib/active_support/messages/metadata.rb +2 -2
  82. data/lib/active_support/multibyte/chars.rb +10 -11
  83. data/lib/active_support/multibyte/unicode.rb +2 -2
  84. data/lib/active_support/multibyte.rb +1 -1
  85. data/lib/active_support/notifications/fanout.rb +31 -11
  86. data/lib/active_support/notifications/instrumenter.rb +17 -0
  87. data/lib/active_support/notifications.rb +10 -0
  88. data/lib/active_support/number_helper/number_converter.rb +1 -3
  89. data/lib/active_support/number_helper/number_to_currency_converter.rb +11 -6
  90. data/lib/active_support/number_helper/number_to_delimited_converter.rb +1 -1
  91. data/lib/active_support/number_helper/number_to_human_size_converter.rb +1 -1
  92. data/lib/active_support/number_helper/number_to_phone_converter.rb +1 -1
  93. data/lib/active_support/number_helper/number_to_rounded_converter.rb +10 -6
  94. data/lib/active_support/number_helper/rounding_helper.rb +2 -6
  95. data/lib/active_support/number_helper.rb +0 -2
  96. data/lib/active_support/option_merger.rb +4 -16
  97. data/lib/active_support/ordered_hash.rb +1 -1
  98. data/lib/active_support/parameter_filter.rb +5 -0
  99. data/lib/active_support/per_thread_registry.rb +1 -0
  100. data/lib/active_support/railtie.rb +34 -11
  101. data/lib/active_support/rescuable.rb +2 -2
  102. data/lib/active_support/secure_compare_rotator.rb +1 -1
  103. data/lib/active_support/security_utils.rb +1 -1
  104. data/lib/active_support/string_inquirer.rb +0 -2
  105. data/lib/active_support/subscriber.rb +5 -0
  106. data/lib/active_support/tagged_logging.rb +1 -1
  107. data/lib/active_support/test_case.rb +9 -21
  108. data/lib/active_support/testing/assertions.rb +35 -5
  109. data/lib/active_support/testing/deprecation.rb +1 -1
  110. data/lib/active_support/testing/isolation.rb +1 -1
  111. data/lib/active_support/testing/method_call_assertions.rb +5 -5
  112. data/lib/active_support/testing/parallelization/server.rb +4 -0
  113. data/lib/active_support/testing/parallelization/worker.rb +3 -0
  114. data/lib/active_support/testing/parallelization.rb +4 -0
  115. data/lib/active_support/testing/parallelize_executor.rb +76 -0
  116. data/lib/active_support/testing/stream.rb +3 -5
  117. data/lib/active_support/testing/tagged_logging.rb +1 -1
  118. data/lib/active_support/testing/time_helpers.rb +13 -2
  119. data/lib/active_support/time_with_zone.rb +19 -6
  120. data/lib/active_support/values/time_zone.rb +25 -9
  121. data/lib/active_support/xml_mini/jdom.rb +1 -1
  122. data/lib/active_support/xml_mini/libxml.rb +5 -5
  123. data/lib/active_support/xml_mini/libxmlsax.rb +1 -1
  124. data/lib/active_support/xml_mini/nokogiri.rb +4 -4
  125. data/lib/active_support/xml_mini/nokogirisax.rb +1 -1
  126. data/lib/active_support/xml_mini/rexml.rb +1 -1
  127. data/lib/active_support/xml_mini.rb +2 -1
  128. data/lib/active_support.rb +14 -1
  129. metadata +11 -25
  130. data/lib/active_support/core_ext/marshal.rb +0 -26
  131. data/lib/active_support/dependencies/zeitwerk_integration.rb +0 -117
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "active_support/core_ext/string/inflections"
4
-
5
- module ActiveSupport
6
- module MarshalWithAutoloading # :nodoc:
7
- def load(source, proc = nil)
8
- super(source, proc)
9
- rescue ArgumentError, NameError => exc
10
- if exc.message.match(%r|undefined class/module (.+?)(?:::)?\z|)
11
- # try loading the class/module
12
- loaded = $1.constantize
13
-
14
- raise unless $1 == loaded.name
15
-
16
- # if it is an IO we need to go back to read the object
17
- source.rewind if source.respond_to?(:rewind)
18
- retry
19
- else
20
- raise exc
21
- end
22
- end
23
- end
24
- end
25
-
26
- Marshal.singleton_class.prepend(ActiveSupport::MarshalWithAutoloading)
@@ -1,117 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "set"
4
- require "active_support/core_ext/string/inflections"
5
-
6
- module ActiveSupport
7
- module Dependencies
8
- module ZeitwerkIntegration # :nodoc: all
9
- module Decorations
10
- def clear
11
- Dependencies.unload_interlock do
12
- Rails.autoloaders.main.reload
13
- rescue Zeitwerk::ReloadingDisabledError
14
- raise "reloading is disabled because config.cache_classes is true"
15
- end
16
- end
17
-
18
- def constantize(cpath)
19
- ActiveSupport::Inflector.constantize(cpath)
20
- end
21
-
22
- def safe_constantize(cpath)
23
- ActiveSupport::Inflector.safe_constantize(cpath)
24
- end
25
-
26
- def autoloaded_constants
27
- Rails.autoloaders.main.unloadable_cpaths
28
- end
29
-
30
- def autoloaded?(object)
31
- cpath = object.is_a?(Module) ? real_mod_name(object) : object.to_s
32
- Rails.autoloaders.main.unloadable_cpath?(cpath)
33
- end
34
-
35
- def verbose=(verbose)
36
- l = verbose ? logger || Rails.logger : nil
37
- Rails.autoloaders.each { |autoloader| autoloader.logger = l }
38
- end
39
-
40
- def unhook!
41
- :no_op
42
- end
43
- end
44
-
45
- module RequireDependency
46
- def require_dependency(filename)
47
- filename = filename.to_path if filename.respond_to?(:to_path)
48
- if abspath = ActiveSupport::Dependencies.search_for_file(filename)
49
- require abspath
50
- else
51
- require filename
52
- end
53
- end
54
- end
55
-
56
- module Inflector
57
- # Concurrent::Map is not needed. This is a private class, and overrides
58
- # must be defined while the application boots.
59
- @overrides = {}
60
-
61
- def self.camelize(basename, _abspath)
62
- @overrides[basename] || basename.camelize
63
- end
64
-
65
- def self.inflect(overrides)
66
- @overrides.merge!(overrides)
67
- end
68
- end
69
-
70
- class << self
71
- def take_over(enable_reloading:)
72
- setup_autoloaders(enable_reloading)
73
- freeze_paths
74
- decorate_dependencies
75
- end
76
-
77
- private
78
- def setup_autoloaders(enable_reloading)
79
- Dependencies.autoload_paths.each do |autoload_path|
80
- # Zeitwerk only accepts existing directories in `push_dir` to
81
- # prevent misconfigurations.
82
- next unless File.directory?(autoload_path)
83
-
84
- autoloader = \
85
- autoload_once?(autoload_path) ? Rails.autoloaders.once : Rails.autoloaders.main
86
-
87
- autoloader.push_dir(autoload_path)
88
- autoloader.do_not_eager_load(autoload_path) unless eager_load?(autoload_path)
89
- end
90
-
91
- Rails.autoloaders.main.enable_reloading if enable_reloading
92
- Rails.autoloaders.each(&:setup)
93
- end
94
-
95
- def autoload_once?(autoload_path)
96
- Dependencies.autoload_once_paths.include?(autoload_path)
97
- end
98
-
99
- def eager_load?(autoload_path)
100
- Dependencies._eager_load_paths.member?(autoload_path)
101
- end
102
-
103
- def freeze_paths
104
- Dependencies.autoload_paths.freeze
105
- Dependencies.autoload_once_paths.freeze
106
- Dependencies._eager_load_paths.freeze
107
- end
108
-
109
- def decorate_dependencies
110
- Dependencies.unhook!
111
- Dependencies.singleton_class.prepend(Decorations)
112
- Object.prepend(RequireDependency)
113
- end
114
- end
115
- end
116
- end
117
- end