activesupport 5.2.3.rc1 → 6.0.0.beta1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +183 -469
- data/MIT-LICENSE +1 -1
- data/README.rdoc +1 -1
- data/lib/active_support.rb +1 -1
- data/lib/active_support/backtrace_cleaner.rb +23 -0
- data/lib/active_support/cache.rb +40 -18
- data/lib/active_support/cache/file_store.rb +19 -12
- data/lib/active_support/cache/mem_cache_store.rb +5 -0
- data/lib/active_support/cache/memory_store.rb +5 -0
- data/lib/active_support/cache/null_store.rb +5 -0
- data/lib/active_support/cache/redis_cache_store.rb +28 -4
- data/lib/active_support/callbacks.rb +16 -5
- data/lib/active_support/configurable.rb +4 -8
- data/lib/active_support/core_ext/array.rb +1 -1
- data/lib/active_support/core_ext/array/extract.rb +21 -0
- data/lib/active_support/core_ext/array/prepend_and_append.rb +2 -6
- data/lib/active_support/core_ext/class/attribute.rb +1 -1
- data/lib/active_support/core_ext/class/subclasses.rb +1 -1
- data/lib/active_support/core_ext/date/calculations.rb +6 -5
- data/lib/active_support/core_ext/date_and_time/calculations.rb +24 -17
- data/lib/active_support/core_ext/date_time/calculations.rb +1 -1
- data/lib/active_support/core_ext/enumerable.rb +71 -67
- data/lib/active_support/core_ext/hash.rb +0 -2
- data/lib/active_support/core_ext/hash/compact.rb +2 -26
- data/lib/active_support/core_ext/hash/keys.rb +0 -29
- data/lib/active_support/core_ext/hash/slice.rb +3 -25
- data/lib/active_support/core_ext/hash/transform_values.rb +2 -29
- data/lib/active_support/core_ext/integer/multiple.rb +1 -1
- data/lib/active_support/core_ext/load_error.rb +1 -1
- data/lib/active_support/core_ext/module.rb +0 -1
- data/lib/active_support/core_ext/module/attribute_accessors.rb +2 -5
- data/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb +8 -14
- data/lib/active_support/core_ext/module/delegation.rb +27 -7
- data/lib/active_support/core_ext/module/introspection.rb +37 -13
- data/lib/active_support/core_ext/module/reachable.rb +1 -6
- data/lib/active_support/core_ext/module/redefine_method.rb +8 -17
- data/lib/active_support/core_ext/numeric.rb +0 -1
- data/lib/active_support/core_ext/numeric/conversions.rb +124 -128
- data/lib/active_support/core_ext/numeric/inquiry.rb +2 -25
- data/lib/active_support/core_ext/object/blank.rb +1 -2
- data/lib/active_support/core_ext/object/duplicable.rb +5 -2
- data/lib/active_support/core_ext/object/json.rb +1 -0
- data/lib/active_support/core_ext/object/try.rb +15 -7
- data/lib/active_support/core_ext/object/with_options.rb +1 -1
- data/lib/active_support/core_ext/range/compare_range.rb +1 -1
- data/lib/active_support/core_ext/range/conversions.rb +31 -29
- data/lib/active_support/core_ext/range/include_range.rb +6 -0
- data/lib/active_support/core_ext/regexp.rb +0 -4
- data/lib/active_support/core_ext/securerandom.rb +23 -3
- data/lib/active_support/core_ext/string/access.rb +8 -0
- data/lib/active_support/core_ext/string/filters.rb +41 -0
- data/lib/active_support/core_ext/string/multibyte.rb +4 -3
- data/lib/active_support/core_ext/string/output_safety.rb +16 -5
- data/lib/active_support/core_ext/string/strip.rb +3 -1
- data/lib/active_support/core_ext/uri.rb +1 -0
- data/lib/active_support/current_attributes.rb +2 -0
- data/lib/active_support/dependencies.rb +28 -11
- data/lib/active_support/deprecation.rb +1 -1
- data/lib/active_support/deprecation/behaviors.rb +1 -1
- data/lib/active_support/deprecation/method_wrappers.rb +4 -5
- data/lib/active_support/deprecation/proxy_wrappers.rb +0 -2
- data/lib/active_support/descendants_tracker.rb +6 -5
- data/lib/active_support/duration.rb +4 -2
- data/lib/active_support/duration/iso8601_parser.rb +2 -3
- data/lib/active_support/duration/iso8601_serializer.rb +3 -4
- data/lib/active_support/encrypted_configuration.rb +0 -4
- data/lib/active_support/evented_file_update_checker.rb +25 -7
- data/lib/active_support/execution_wrapper.rb +1 -0
- data/lib/active_support/gem_version.rb +4 -4
- data/lib/active_support/hash_with_indifferent_access.rb +16 -28
- data/lib/active_support/i18n.rb +1 -0
- data/lib/active_support/i18n_railtie.rb +8 -1
- data/lib/active_support/inflector/inflections.rb +1 -4
- data/lib/active_support/inflector/methods.rb +15 -27
- data/lib/active_support/inflector/transliterate.rb +6 -6
- data/lib/active_support/json/decoding.rb +23 -23
- data/lib/active_support/json/encoding.rb +6 -2
- data/lib/active_support/key_generator.rb +0 -32
- data/lib/active_support/lazy_load_hooks.rb +5 -1
- data/lib/active_support/locale/en.rb +31 -0
- data/lib/active_support/log_subscriber.rb +31 -8
- data/lib/active_support/logger.rb +0 -15
- data/lib/active_support/logger_silence.rb +28 -12
- data/lib/active_support/logger_thread_safe_level.rb +26 -4
- data/lib/active_support/message_encryptor.rb +2 -4
- data/lib/active_support/message_verifier.rb +2 -2
- data/lib/active_support/multibyte/chars.rb +29 -48
- data/lib/active_support/multibyte/unicode.rb +44 -281
- data/lib/active_support/notifications.rb +32 -4
- data/lib/active_support/notifications/fanout.rb +40 -2
- data/lib/active_support/notifications/instrumenter.rb +73 -2
- data/lib/active_support/number_helper.rb +7 -0
- data/lib/active_support/number_helper/number_to_currency_converter.rb +2 -2
- data/lib/active_support/number_helper/number_to_delimited_converter.rb +3 -1
- data/lib/active_support/number_helper/number_to_human_converter.rb +3 -1
- data/lib/active_support/number_helper/number_to_human_size_converter.rb +3 -1
- data/lib/active_support/number_helper/number_to_percentage_converter.rb +3 -1
- data/lib/active_support/number_helper/number_to_phone_converter.rb +2 -0
- data/lib/active_support/number_helper/number_to_rounded_converter.rb +5 -3
- data/lib/active_support/parameter_filter.rb +124 -0
- data/lib/active_support/rails.rb +0 -6
- data/lib/active_support/reloader.rb +4 -5
- data/lib/active_support/subscriber.rb +16 -26
- data/lib/active_support/tagged_logging.rb +13 -4
- data/lib/active_support/test_case.rb +91 -0
- data/lib/active_support/testing/assertions.rb +15 -1
- data/lib/active_support/testing/deprecation.rb +0 -1
- data/lib/active_support/testing/file_fixtures.rb +2 -0
- data/lib/active_support/testing/isolation.rb +2 -2
- data/lib/active_support/testing/method_call_assertions.rb +28 -1
- data/lib/active_support/testing/parallelization.rb +109 -0
- data/lib/active_support/testing/stream.rb +1 -1
- data/lib/active_support/testing/time_helpers.rb +7 -7
- data/lib/active_support/time_with_zone.rb +15 -5
- data/lib/active_support/values/time_zone.rb +12 -7
- data/lib/active_support/xml_mini.rb +2 -9
- data/lib/active_support/xml_mini/jdom.rb +2 -2
- data/lib/active_support/xml_mini/libxml.rb +2 -2
- data/lib/active_support/xml_mini/libxmlsax.rb +4 -4
- data/lib/active_support/xml_mini/nokogiri.rb +2 -2
- data/lib/active_support/xml_mini/nokogirisax.rb +3 -3
- data/lib/active_support/xml_mini/rexml.rb +2 -2
- metadata +9 -6
- data/lib/active_support/values/unicode_tables.dat +0 -0
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
require "tzinfo"
|
4
4
|
require "concurrent/map"
|
5
|
-
require "active_support/core_ext/object/blank"
|
6
5
|
|
7
6
|
module ActiveSupport
|
8
7
|
# The TimeZone class serves as a wrapper around TZInfo::Timezone instances.
|
@@ -183,8 +182,9 @@ module ActiveSupport
|
|
183
182
|
"Samoa" => "Pacific/Apia"
|
184
183
|
}
|
185
184
|
|
186
|
-
UTC_OFFSET_WITH_COLON = "%s%02d:%02d"
|
187
|
-
UTC_OFFSET_WITHOUT_COLON = UTC_OFFSET_WITH_COLON.tr(":", "")
|
185
|
+
UTC_OFFSET_WITH_COLON = "%s%02d:%02d" # :nodoc:
|
186
|
+
UTC_OFFSET_WITHOUT_COLON = UTC_OFFSET_WITH_COLON.tr(":", "") # :nodoc:
|
187
|
+
private_constant :UTC_OFFSET_WITH_COLON, :UTC_OFFSET_WITHOUT_COLON
|
188
188
|
|
189
189
|
@lazy_zones_map = Concurrent::Map.new
|
190
190
|
@country_zones = Concurrent::Map.new
|
@@ -266,7 +266,7 @@ module ActiveSupport
|
|
266
266
|
private
|
267
267
|
def load_country_zones(code)
|
268
268
|
country = TZInfo::Country.get(code)
|
269
|
-
country.zone_identifiers.
|
269
|
+
country.zone_identifiers.flat_map do |tz_id|
|
270
270
|
if MAPPING.value?(tz_id)
|
271
271
|
MAPPING.inject([]) do |memo, (key, value)|
|
272
272
|
memo << self[key] if value == tz_id
|
@@ -275,7 +275,7 @@ module ActiveSupport
|
|
275
275
|
else
|
276
276
|
create(tz_id, nil, TZInfo::Timezone.new(tz_id))
|
277
277
|
end
|
278
|
-
end.
|
278
|
+
end.sort!
|
279
279
|
end
|
280
280
|
|
281
281
|
def zones_map
|
@@ -355,8 +355,13 @@ module ActiveSupport
|
|
355
355
|
# Time.zone = 'Hawaii' # => "Hawaii"
|
356
356
|
# Time.utc(2000).to_f # => 946684800.0
|
357
357
|
# Time.zone.at(946684800.0) # => Fri, 31 Dec 1999 14:00:00 HST -10:00
|
358
|
-
|
359
|
-
|
358
|
+
#
|
359
|
+
# A second argument can be supplied to specify sub-second precision.
|
360
|
+
#
|
361
|
+
# Time.zone = 'Hawaii' # => "Hawaii"
|
362
|
+
# Time.at(946684800, 123456.789).nsec # => 123456789
|
363
|
+
def at(*args)
|
364
|
+
Time.at(*args).utc.in_time_zone(self)
|
360
365
|
end
|
361
366
|
|
362
367
|
# Method for creating new ActiveSupport::TimeWithZone instance in time zone
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require "time"
|
4
4
|
require "base64"
|
5
5
|
require "bigdecimal"
|
6
|
+
require "bigdecimal/util"
|
6
7
|
require "active_support/core_ext/module/delegation"
|
7
8
|
require "active_support/core_ext/string/inflections"
|
8
9
|
require "active_support/core_ext/date_time/calculations"
|
@@ -48,10 +49,6 @@ module ActiveSupport
|
|
48
49
|
"Array" => "array",
|
49
50
|
"Hash" => "hash"
|
50
51
|
}
|
51
|
-
|
52
|
-
# No need to map these on Ruby 2.4+
|
53
|
-
TYPE_NAMES["Fixnum"] = "integer" unless 0.class == Integer
|
54
|
-
TYPE_NAMES["Bignum"] = "integer" unless 0.class == Integer
|
55
52
|
end
|
56
53
|
|
57
54
|
FORMATTING = {
|
@@ -72,11 +69,7 @@ module ActiveSupport
|
|
72
69
|
"float" => Proc.new { |float| float.to_f },
|
73
70
|
"decimal" => Proc.new do |number|
|
74
71
|
if String === number
|
75
|
-
|
76
|
-
BigDecimal(number)
|
77
|
-
rescue ArgumentError
|
78
|
-
BigDecimal(number.to_f.to_s)
|
79
|
-
end
|
72
|
+
number.to_d
|
80
73
|
else
|
81
74
|
BigDecimal(number)
|
82
75
|
end
|
@@ -18,7 +18,7 @@ module ActiveSupport
|
|
18
18
|
module XmlMini_JDOM #:nodoc:
|
19
19
|
extend self
|
20
20
|
|
21
|
-
CONTENT_KEY = "__content__"
|
21
|
+
CONTENT_KEY = "__content__"
|
22
22
|
|
23
23
|
NODE_TYPE_NAMES = %w{ATTRIBUTE_NODE CDATA_SECTION_NODE COMMENT_NODE DOCUMENT_FRAGMENT_NODE
|
24
24
|
DOCUMENT_NODE DOCUMENT_TYPE_NODE ELEMENT_NODE ENTITY_NODE ENTITY_REFERENCE_NODE NOTATION_NODE
|
@@ -169,7 +169,7 @@ module ActiveSupport
|
|
169
169
|
# element::
|
170
170
|
# XML element to be checked.
|
171
171
|
def empty_content?(element)
|
172
|
-
text = ""
|
172
|
+
text = +""
|
173
173
|
child_nodes = element.child_nodes
|
174
174
|
(0...child_nodes.length).each do |i|
|
175
175
|
item = child_nodes.item(i)
|
@@ -34,7 +34,7 @@ module LibXML #:nodoc:
|
|
34
34
|
end
|
35
35
|
|
36
36
|
module Node #:nodoc:
|
37
|
-
CONTENT_ROOT = "__content__"
|
37
|
+
CONTENT_ROOT = "__content__"
|
38
38
|
|
39
39
|
# Convert XML document to hash.
|
40
40
|
#
|
@@ -55,7 +55,7 @@ module LibXML #:nodoc:
|
|
55
55
|
if c.element?
|
56
56
|
c.to_hash(node_hash)
|
57
57
|
elsif c.text? || c.cdata?
|
58
|
-
node_hash[CONTENT_ROOT] ||= ""
|
58
|
+
node_hash[CONTENT_ROOT] ||= +""
|
59
59
|
node_hash[CONTENT_ROOT] << c.content
|
60
60
|
end
|
61
61
|
end
|
@@ -13,8 +13,8 @@ module ActiveSupport
|
|
13
13
|
class HashBuilder
|
14
14
|
include LibXML::XML::SaxParser::Callbacks
|
15
15
|
|
16
|
-
CONTENT_KEY = "__content__"
|
17
|
-
HASH_SIZE_KEY = "__hash_size__"
|
16
|
+
CONTENT_KEY = "__content__"
|
17
|
+
HASH_SIZE_KEY = "__hash_size__"
|
18
18
|
|
19
19
|
attr_reader :hash
|
20
20
|
|
@@ -23,7 +23,7 @@ module ActiveSupport
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def on_start_document
|
26
|
-
@hash = { CONTENT_KEY => ""
|
26
|
+
@hash = { CONTENT_KEY => +"" }
|
27
27
|
@hash_stack = [@hash]
|
28
28
|
end
|
29
29
|
|
@@ -33,7 +33,7 @@ module ActiveSupport
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def on_start_element(name, attrs = {})
|
36
|
-
new_hash = { CONTENT_KEY => ""
|
36
|
+
new_hash = { CONTENT_KEY => +"" }.merge!(attrs)
|
37
37
|
new_hash[HASH_SIZE_KEY] = new_hash.size + 1
|
38
38
|
|
39
39
|
case current_hash[name]
|
@@ -38,7 +38,7 @@ module ActiveSupport
|
|
38
38
|
end
|
39
39
|
|
40
40
|
module Node #:nodoc:
|
41
|
-
CONTENT_ROOT = "__content__"
|
41
|
+
CONTENT_ROOT = "__content__"
|
42
42
|
|
43
43
|
# Convert XML document to hash.
|
44
44
|
#
|
@@ -59,7 +59,7 @@ module ActiveSupport
|
|
59
59
|
if c.element?
|
60
60
|
c.to_hash(node_hash)
|
61
61
|
elsif c.text? || c.cdata?
|
62
|
-
node_hash[CONTENT_ROOT] ||= ""
|
62
|
+
node_hash[CONTENT_ROOT] ||= +""
|
63
63
|
node_hash[CONTENT_ROOT] << c.content
|
64
64
|
end
|
65
65
|
end
|
@@ -16,8 +16,8 @@ module ActiveSupport
|
|
16
16
|
# Class that will build the hash while the XML document
|
17
17
|
# is being parsed using SAX events.
|
18
18
|
class HashBuilder < Nokogiri::XML::SAX::Document
|
19
|
-
CONTENT_KEY = "__content__"
|
20
|
-
HASH_SIZE_KEY = "__hash_size__"
|
19
|
+
CONTENT_KEY = "__content__"
|
20
|
+
HASH_SIZE_KEY = "__hash_size__"
|
21
21
|
|
22
22
|
attr_reader :hash
|
23
23
|
|
@@ -39,7 +39,7 @@ module ActiveSupport
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def start_element(name, attrs = [])
|
42
|
-
new_hash = { CONTENT_KEY => ""
|
42
|
+
new_hash = { CONTENT_KEY => +"" }.merge!(Hash[attrs])
|
43
43
|
new_hash[HASH_SIZE_KEY] = new_hash.size + 1
|
44
44
|
|
45
45
|
case current_hash[name]
|
@@ -8,7 +8,7 @@ module ActiveSupport
|
|
8
8
|
module XmlMini_REXML #:nodoc:
|
9
9
|
extend self
|
10
10
|
|
11
|
-
CONTENT_KEY = "__content__"
|
11
|
+
CONTENT_KEY = "__content__"
|
12
12
|
|
13
13
|
# Parse an XML Document string or IO into a simple hash.
|
14
14
|
#
|
@@ -76,7 +76,7 @@ module ActiveSupport
|
|
76
76
|
hash
|
77
77
|
else
|
78
78
|
# must use value to prevent double-escaping
|
79
|
-
texts = ""
|
79
|
+
texts = +""
|
80
80
|
element.texts.each { |t| texts << t.value }
|
81
81
|
merge!(hash, CONTENT_KEY, texts)
|
82
82
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activesupport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- lib/active_support/core_ext/array.rb
|
113
113
|
- lib/active_support/core_ext/array/access.rb
|
114
114
|
- lib/active_support/core_ext/array/conversions.rb
|
115
|
+
- lib/active_support/core_ext/array/extract.rb
|
115
116
|
- lib/active_support/core_ext/array/extract_options.rb
|
116
117
|
- lib/active_support/core_ext/array/grouping.rb
|
117
118
|
- lib/active_support/core_ext/array/inquiry.rb
|
@@ -263,6 +264,7 @@ files:
|
|
263
264
|
- lib/active_support/json/encoding.rb
|
264
265
|
- lib/active_support/key_generator.rb
|
265
266
|
- lib/active_support/lazy_load_hooks.rb
|
267
|
+
- lib/active_support/locale/en.rb
|
266
268
|
- lib/active_support/locale/en.yml
|
267
269
|
- lib/active_support/log_subscriber.rb
|
268
270
|
- lib/active_support/log_subscriber/test_helper.rb
|
@@ -293,6 +295,7 @@ files:
|
|
293
295
|
- lib/active_support/option_merger.rb
|
294
296
|
- lib/active_support/ordered_hash.rb
|
295
297
|
- lib/active_support/ordered_options.rb
|
298
|
+
- lib/active_support/parameter_filter.rb
|
296
299
|
- lib/active_support/per_thread_registry.rb
|
297
300
|
- lib/active_support/proxy_object.rb
|
298
301
|
- lib/active_support/rails.rb
|
@@ -312,6 +315,7 @@ files:
|
|
312
315
|
- lib/active_support/testing/file_fixtures.rb
|
313
316
|
- lib/active_support/testing/isolation.rb
|
314
317
|
- lib/active_support/testing/method_call_assertions.rb
|
318
|
+
- lib/active_support/testing/parallelization.rb
|
315
319
|
- lib/active_support/testing/setup_and_teardown.rb
|
316
320
|
- lib/active_support/testing/stream.rb
|
317
321
|
- lib/active_support/testing/tagged_logging.rb
|
@@ -319,7 +323,6 @@ files:
|
|
319
323
|
- lib/active_support/time.rb
|
320
324
|
- lib/active_support/time_with_zone.rb
|
321
325
|
- lib/active_support/values/time_zone.rb
|
322
|
-
- lib/active_support/values/unicode_tables.dat
|
323
326
|
- lib/active_support/version.rb
|
324
327
|
- lib/active_support/xml_mini.rb
|
325
328
|
- lib/active_support/xml_mini/jdom.rb
|
@@ -332,8 +335,8 @@ homepage: http://rubyonrails.org
|
|
332
335
|
licenses:
|
333
336
|
- MIT
|
334
337
|
metadata:
|
335
|
-
source_code_uri: https://github.com/rails/rails/tree/
|
336
|
-
changelog_uri: https://github.com/rails/rails/blob/
|
338
|
+
source_code_uri: https://github.com/rails/rails/tree/v6.0.0.beta1/activesupport
|
339
|
+
changelog_uri: https://github.com/rails/rails/blob/v6.0.0.beta1/activesupport/CHANGELOG.md
|
337
340
|
post_install_message:
|
338
341
|
rdoc_options:
|
339
342
|
- "--encoding"
|
@@ -344,7 +347,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
344
347
|
requirements:
|
345
348
|
- - ">="
|
346
349
|
- !ruby/object:Gem::Version
|
347
|
-
version: 2.
|
350
|
+
version: 2.5.0
|
348
351
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
349
352
|
requirements:
|
350
353
|
- - ">"
|
Binary file
|