activesupport 4.1.16 → 4.2.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 +140 -714
- data/README.rdoc +7 -2
- data/lib/active_support/backtrace_cleaner.rb +4 -4
- data/lib/active_support/cache.rb +18 -20
- data/lib/active_support/cache/file_store.rb +5 -0
- data/lib/active_support/cache/strategy/local_cache.rb +5 -4
- data/lib/active_support/cache/strategy/local_cache_middleware.rb +5 -0
- data/lib/active_support/callbacks.rb +92 -140
- data/lib/active_support/concern.rb +9 -1
- data/lib/active_support/core_ext/array/access.rb +5 -1
- data/lib/active_support/core_ext/array/grouping.rb +5 -0
- data/lib/active_support/core_ext/class/delegating_attributes.rb +4 -0
- data/lib/active_support/core_ext/date_time/calculations.rb +11 -1
- data/lib/active_support/core_ext/date_time/conversions.rb +2 -2
- data/lib/active_support/core_ext/digest/uuid.rb +51 -0
- data/lib/active_support/core_ext/hash.rb +1 -0
- data/lib/active_support/core_ext/hash/conversions.rb +2 -3
- data/lib/active_support/core_ext/hash/indifferent_access.rb +1 -1
- data/lib/active_support/core_ext/hash/keys.rb +10 -6
- data/lib/active_support/core_ext/hash/transform_values.rb +23 -0
- data/lib/active_support/core_ext/kernel.rb +3 -2
- data/lib/active_support/core_ext/kernel/concern.rb +10 -0
- data/lib/active_support/core_ext/kernel/reporting.rb +14 -0
- data/lib/active_support/core_ext/load_error.rb +4 -1
- data/lib/active_support/core_ext/module/delegation.rb +13 -25
- data/lib/active_support/core_ext/numeric/time.rb +1 -19
- data/lib/active_support/core_ext/object.rb +1 -0
- data/lib/active_support/core_ext/object/duplicable.rb +4 -11
- data/lib/active_support/core_ext/object/itself.rb +12 -0
- data/lib/active_support/core_ext/object/json.rb +1 -1
- data/lib/active_support/core_ext/object/to_query.rb +2 -1
- data/lib/active_support/core_ext/object/with_options.rb +15 -2
- data/lib/active_support/core_ext/string/access.rb +4 -4
- data/lib/active_support/core_ext/string/filters.rb +25 -1
- data/lib/active_support/core_ext/string/inflections.rb +3 -1
- data/lib/active_support/core_ext/string/output_safety.rb +29 -19
- data/lib/active_support/core_ext/thread.rb +7 -0
- data/lib/active_support/core_ext/time/conversions.rb +1 -1
- data/lib/active_support/core_ext/time/zones.rb +0 -1
- data/lib/active_support/dependencies.rb +5 -4
- data/lib/active_support/duration.rb +2 -3
- data/lib/active_support/gem_version.rb +3 -3
- data/lib/active_support/hash_with_indifferent_access.rb +13 -5
- data/lib/active_support/i18n_railtie.rb +1 -7
- data/lib/active_support/inflector/inflections.rb +1 -1
- data/lib/active_support/inflector/methods.rb +39 -15
- data/lib/active_support/json/encoding.rb +0 -4
- data/lib/active_support/logger.rb +0 -14
- data/lib/active_support/logger_silence.rb +3 -24
- data/lib/active_support/message_encryptor.rb +2 -1
- data/lib/active_support/multibyte/unicode.rb +5 -3
- data/lib/active_support/notifications.rb +7 -2
- data/lib/active_support/notifications/fanout.rb +11 -6
- data/lib/active_support/number_helper.rb +7 -8
- data/lib/active_support/number_helper/number_to_rounded_converter.rb +2 -2
- data/lib/active_support/test_case.rb +3 -13
- data/lib/active_support/testing/assertions.rb +1 -1
- data/lib/active_support/testing/declarative.rb +1 -25
- data/lib/active_support/testing/isolation.rb +16 -6
- data/lib/active_support/testing/tagged_logging.rb +1 -1
- data/lib/active_support/testing/time_helpers.rb +5 -1
- data/lib/active_support/time.rb +0 -2
- data/lib/active_support/time_with_zone.rb +14 -3
- data/lib/active_support/values/time_zone.rb +76 -75
- data/lib/active_support/xml_mini.rb +0 -3
- data/lib/active_support/xml_mini/jdom.rb +5 -6
- data/lib/active_support/xml_mini/rexml.rb +5 -6
- metadata +17 -16
- data/lib/active_support/core_ext/object/to_json.rb +0 -5
- data/lib/active_support/file_watcher.rb +0 -36
- data/lib/active_support/security_utils.rb +0 -27
@@ -78,6 +78,10 @@ module ActiveSupport
|
|
78
78
|
# or <tt>Date.today</tt>, in order to honor the application time zone
|
79
79
|
# please always use <tt>Time.current</tt> and <tt>Date.current</tt>.)
|
80
80
|
#
|
81
|
+
# Note that the usec for the time passed will be set to 0 to prevent rounding
|
82
|
+
# errors with external services, like MySQL (which will round instead of floor,
|
83
|
+
# leading to off-by-one-second errors).
|
84
|
+
#
|
81
85
|
# This method also accepts a block, which will return the current time back to its original
|
82
86
|
# state at the end of the block:
|
83
87
|
#
|
@@ -90,7 +94,7 @@ module ActiveSupport
|
|
90
94
|
if date_or_time.is_a?(Date) && !date_or_time.is_a?(DateTime)
|
91
95
|
now = date_or_time.midnight.to_time
|
92
96
|
else
|
93
|
-
now = date_or_time.to_time
|
97
|
+
now = date_or_time.to_time.change(usec: 0)
|
94
98
|
end
|
95
99
|
|
96
100
|
simple_stubs.stub_object(Time, :now, now)
|
data/lib/active_support/time.rb
CHANGED
@@ -185,8 +185,11 @@ module ActiveSupport
|
|
185
185
|
end
|
186
186
|
alias_method :rfc822, :rfc2822
|
187
187
|
|
188
|
-
#
|
189
|
-
#
|
188
|
+
# Returns a string of the object's date and time.
|
189
|
+
# Accepts an optional <tt>format</tt>:
|
190
|
+
# * <tt>:default</tt> - default value, mimics Ruby 1.9 Time#to_s format.
|
191
|
+
# * <tt>:db</tt> - format outputs time in UTC :db time. See Time#to_formatted_s(:db).
|
192
|
+
# * Any key in <tt>Time::DATE_FORMATS</tt> can be used. See active_support/core_ext/time/conversions.rb.
|
190
193
|
def to_s(format = :default)
|
191
194
|
if format == :db
|
192
195
|
utc.to_s(format)
|
@@ -259,7 +262,7 @@ module ActiveSupport
|
|
259
262
|
# If we're subtracting a Duration of variable length (i.e., years, months, days), move backwards from #time,
|
260
263
|
# otherwise move backwards #utc, for accuracy when moving across DST boundaries
|
261
264
|
if other.acts_like?(:time)
|
262
|
-
|
265
|
+
to_time - other.to_time
|
263
266
|
elsif duration_of_variable_length?(other)
|
264
267
|
method_missing(:-, other)
|
265
268
|
else
|
@@ -350,6 +353,14 @@ module ActiveSupport
|
|
350
353
|
initialize(variables[0].utc, ::Time.find_zone(variables[1]), variables[2].utc)
|
351
354
|
end
|
352
355
|
|
356
|
+
# respond_to_missing? is not called in some cases, such as when type conversion is
|
357
|
+
# performed with Kernel#String
|
358
|
+
def respond_to?(sym, include_priv = false)
|
359
|
+
# ensure that we're not going to throw and rescue from NoMethodError in method_missing which is slow
|
360
|
+
return false if sym.to_sym == :to_str
|
361
|
+
super
|
362
|
+
end
|
363
|
+
|
353
364
|
# Ensure proxy class responds to all methods that underlying time instance
|
354
365
|
# responds to.
|
355
366
|
def respond_to_missing?(sym, include_priv)
|
@@ -111,11 +111,9 @@ module ActiveSupport
|
|
111
111
|
"Jerusalem" => "Asia/Jerusalem",
|
112
112
|
"Harare" => "Africa/Harare",
|
113
113
|
"Pretoria" => "Africa/Johannesburg",
|
114
|
-
"Kaliningrad" => "Europe/Kaliningrad",
|
115
114
|
"Moscow" => "Europe/Moscow",
|
116
115
|
"St. Petersburg" => "Europe/Moscow",
|
117
|
-
"Volgograd" => "Europe/
|
118
|
-
"Samara" => "Europe/Samara",
|
116
|
+
"Volgograd" => "Europe/Moscow",
|
119
117
|
"Kuwait" => "Asia/Kuwait",
|
120
118
|
"Riyadh" => "Asia/Riyadh",
|
121
119
|
"Nairobi" => "Africa/Nairobi",
|
@@ -172,7 +170,6 @@ module ActiveSupport
|
|
172
170
|
"Guam" => "Pacific/Guam",
|
173
171
|
"Port Moresby" => "Pacific/Port_Moresby",
|
174
172
|
"Magadan" => "Asia/Magadan",
|
175
|
-
"Srednekolymsk" => "Asia/Srednekolymsk",
|
176
173
|
"Solomon Is." => "Pacific/Guadalcanal",
|
177
174
|
"New Caledonia" => "Pacific/Noumea",
|
178
175
|
"Fiji" => "Pacific/Fiji",
|
@@ -191,16 +188,72 @@ module ActiveSupport
|
|
191
188
|
|
192
189
|
@lazy_zones_map = ThreadSafe::Cache.new
|
193
190
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
191
|
+
class << self
|
192
|
+
# Assumes self represents an offset from UTC in seconds (as returned from
|
193
|
+
# Time#utc_offset) and turns this into an +HH:MM formatted string.
|
194
|
+
#
|
195
|
+
# TimeZone.seconds_to_utc_offset(-21_600) # => "-06:00"
|
196
|
+
def seconds_to_utc_offset(seconds, colon = true)
|
197
|
+
format = colon ? UTC_OFFSET_WITH_COLON : UTC_OFFSET_WITHOUT_COLON
|
198
|
+
sign = (seconds < 0 ? '-' : '+')
|
199
|
+
hours = seconds.abs / 3600
|
200
|
+
minutes = (seconds.abs % 3600) / 60
|
201
|
+
format % [sign, hours, minutes]
|
202
|
+
end
|
203
|
+
|
204
|
+
def find_tzinfo(name)
|
205
|
+
TZInfo::TimezoneProxy.new(MAPPING[name] || name)
|
206
|
+
end
|
207
|
+
|
208
|
+
alias_method :create, :new
|
209
|
+
|
210
|
+
# Returns a TimeZone instance with the given name, or +nil+ if no
|
211
|
+
# such TimeZone instance exists. (This exists to support the use of
|
212
|
+
# this class with the +composed_of+ macro.)
|
213
|
+
def new(name)
|
214
|
+
self[name]
|
215
|
+
end
|
216
|
+
|
217
|
+
# Returns an array of all TimeZone objects. There are multiple
|
218
|
+
# TimeZone objects per time zone, in many cases, to make it easier
|
219
|
+
# for users to find their own time zone.
|
220
|
+
def all
|
221
|
+
@zones ||= zones_map.values.sort
|
222
|
+
end
|
223
|
+
|
224
|
+
def zones_map
|
225
|
+
@zones_map ||= begin
|
226
|
+
MAPPING.each_key {|place| self[place]} # load all the zones
|
227
|
+
@lazy_zones_map
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
# Locate a specific time zone object. If the argument is a string, it
|
232
|
+
# is interpreted to mean the name of the timezone to locate. If it is a
|
233
|
+
# numeric value it is either the hour offset, or the second offset, of the
|
234
|
+
# timezone to find. (The first one with that offset will be returned.)
|
235
|
+
# Returns +nil+ if no such time zone is known to the system.
|
236
|
+
def [](arg)
|
237
|
+
case arg
|
238
|
+
when String
|
239
|
+
begin
|
240
|
+
@lazy_zones_map[arg] ||= create(arg).tap { |tz| tz.utc_offset }
|
241
|
+
rescue TZInfo::InvalidTimezoneIdentifier
|
242
|
+
nil
|
243
|
+
end
|
244
|
+
when Numeric, ActiveSupport::Duration
|
245
|
+
arg *= 3600 if arg.abs <= 13
|
246
|
+
all.find { |z| z.utc_offset == arg.to_i }
|
247
|
+
else
|
248
|
+
raise ArgumentError, "invalid argument to TimeZone[]: #{arg.inspect}"
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
# A convenience method for returning a collection of TimeZone objects
|
253
|
+
# for time zones in the USA.
|
254
|
+
def us_zones
|
255
|
+
@us_zones ||= all.find_all { |z| z.name =~ /US|Arizona|Indiana|Hawaii|Alaska/ }
|
256
|
+
end
|
204
257
|
end
|
205
258
|
|
206
259
|
include Comparable
|
@@ -285,6 +338,11 @@ module ActiveSupport
|
|
285
338
|
#
|
286
339
|
# Time.zone.now # => Fri, 31 Dec 1999 14:00:00 HST -10:00
|
287
340
|
# Time.zone.parse('22:30:00') # => Fri, 31 Dec 1999 22:30:00 HST -10:00
|
341
|
+
#
|
342
|
+
# However, if the date component is not provided, but any other upper
|
343
|
+
# components are supplied, then the day of the month defaults to 1:
|
344
|
+
#
|
345
|
+
# Time.zone.parse('Mar 2000') # => Wed, 01 Mar 2000 00:00:00 HST -10:00
|
288
346
|
def parse(str, now=now())
|
289
347
|
parts = Date._parse(str, false)
|
290
348
|
return if parts.empty?
|
@@ -292,7 +350,7 @@ module ActiveSupport
|
|
292
350
|
time = Time.new(
|
293
351
|
parts.fetch(:year, now.year),
|
294
352
|
parts.fetch(:mon, now.month),
|
295
|
-
parts.fetch(:mday, now.day),
|
353
|
+
parts.fetch(:mday, parts[:year] || parts[:mon] ? 1 : now.day),
|
296
354
|
parts.fetch(:hour, 0),
|
297
355
|
parts.fetch(:min, 0),
|
298
356
|
parts.fetch(:sec, 0) + parts.fetch(:sec_fraction, 0),
|
@@ -359,66 +417,9 @@ module ActiveSupport
|
|
359
417
|
tzinfo.periods_for_local(time)
|
360
418
|
end
|
361
419
|
|
362
|
-
def self.find_tzinfo(name)
|
363
|
-
TZInfo::TimezoneProxy.new(MAPPING[name] || name)
|
364
|
-
end
|
365
|
-
|
366
|
-
class << self
|
367
|
-
alias_method :create, :new
|
368
|
-
|
369
|
-
# Returns a TimeZone instance with the given name, or +nil+ if no
|
370
|
-
# such TimeZone instance exists. (This exists to support the use of
|
371
|
-
# this class with the +composed_of+ macro.)
|
372
|
-
def new(name)
|
373
|
-
self[name]
|
374
|
-
end
|
375
|
-
|
376
|
-
# Returns an array of all TimeZone objects. There are multiple
|
377
|
-
# TimeZone objects per time zone, in many cases, to make it easier
|
378
|
-
# for users to find their own time zone.
|
379
|
-
def all
|
380
|
-
@zones ||= zones_map.values.sort
|
381
|
-
end
|
382
|
-
|
383
|
-
def zones_map
|
384
|
-
@zones_map ||= begin
|
385
|
-
MAPPING.each_key {|place| self[place]} # load all the zones
|
386
|
-
@lazy_zones_map
|
387
|
-
end
|
388
|
-
end
|
389
|
-
|
390
|
-
# Locate a specific time zone object. If the argument is a string, it
|
391
|
-
# is interpreted to mean the name of the timezone to locate. If it is a
|
392
|
-
# numeric value it is either the hour offset, or the second offset, of the
|
393
|
-
# timezone to find. (The first one with that offset will be returned.)
|
394
|
-
# Returns +nil+ if no such time zone is known to the system.
|
395
|
-
def [](arg)
|
396
|
-
case arg
|
397
|
-
when String
|
398
|
-
begin
|
399
|
-
@lazy_zones_map[arg] ||= create(arg).tap { |tz| tz.utc_offset }
|
400
|
-
rescue TZInfo::InvalidTimezoneIdentifier
|
401
|
-
nil
|
402
|
-
end
|
403
|
-
when Numeric, ActiveSupport::Duration
|
404
|
-
arg *= 3600 if arg.abs <= 13
|
405
|
-
all.find { |z| z.utc_offset == arg.to_i }
|
406
|
-
else
|
407
|
-
raise ArgumentError, "invalid argument to TimeZone[]: #{arg.inspect}"
|
408
|
-
end
|
409
|
-
end
|
410
|
-
|
411
|
-
# A convenience method for returning a collection of TimeZone objects
|
412
|
-
# for time zones in the USA.
|
413
|
-
def us_zones
|
414
|
-
@us_zones ||= all.find_all { |z| z.name =~ /US|Arizona|Indiana|Hawaii|Alaska/ }
|
415
|
-
end
|
416
|
-
end
|
417
|
-
|
418
420
|
private
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
end
|
421
|
+
def time_now
|
422
|
+
Time.now
|
423
|
+
end
|
423
424
|
end
|
424
425
|
end
|
@@ -46,7 +46,7 @@ module ActiveSupport
|
|
46
46
|
xml_string_reader = StringReader.new(data)
|
47
47
|
xml_input_source = InputSource.new(xml_string_reader)
|
48
48
|
doc = @dbf.new_document_builder.parse(xml_input_source)
|
49
|
-
merge_element!({CONTENT_KEY => ''}, doc.document_element
|
49
|
+
merge_element!({CONTENT_KEY => ''}, doc.document_element)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
@@ -58,10 +58,9 @@ module ActiveSupport
|
|
58
58
|
# Hash to merge the converted element into.
|
59
59
|
# element::
|
60
60
|
# XML element to merge into hash
|
61
|
-
def merge_element!(hash, element
|
62
|
-
raise 'Document too deep!' if depth == 0
|
61
|
+
def merge_element!(hash, element)
|
63
62
|
delete_empty(hash)
|
64
|
-
merge!(hash, element.tag_name, collapse(element
|
63
|
+
merge!(hash, element.tag_name, collapse(element))
|
65
64
|
end
|
66
65
|
|
67
66
|
def delete_empty(hash)
|
@@ -72,14 +71,14 @@ module ActiveSupport
|
|
72
71
|
#
|
73
72
|
# element::
|
74
73
|
# The document element to be collapsed.
|
75
|
-
def collapse(element
|
74
|
+
def collapse(element)
|
76
75
|
hash = get_attributes(element)
|
77
76
|
|
78
77
|
child_nodes = element.child_nodes
|
79
78
|
if child_nodes.length > 0
|
80
79
|
(0...child_nodes.length).each do |i|
|
81
80
|
child = child_nodes.item(i)
|
82
|
-
merge_element!(hash, child
|
81
|
+
merge_element!(hash, child) unless child.node_type == Node.TEXT_NODE
|
83
82
|
end
|
84
83
|
merge_texts!(hash, element) unless empty_content?(element)
|
85
84
|
hash
|
@@ -29,7 +29,7 @@ module ActiveSupport
|
|
29
29
|
doc = REXML::Document.new(data)
|
30
30
|
|
31
31
|
if doc.root
|
32
|
-
merge_element!({}, doc.root
|
32
|
+
merge_element!({}, doc.root)
|
33
33
|
else
|
34
34
|
raise REXML::ParseException,
|
35
35
|
"The document #{doc.to_s.inspect} does not have a valid root"
|
@@ -44,20 +44,19 @@ module ActiveSupport
|
|
44
44
|
# Hash to merge the converted element into.
|
45
45
|
# element::
|
46
46
|
# XML element to merge into hash
|
47
|
-
def merge_element!(hash, element
|
48
|
-
|
49
|
-
merge!(hash, element.name, collapse(element, depth))
|
47
|
+
def merge_element!(hash, element)
|
48
|
+
merge!(hash, element.name, collapse(element))
|
50
49
|
end
|
51
50
|
|
52
51
|
# Actually converts an XML document element into a data structure.
|
53
52
|
#
|
54
53
|
# element::
|
55
54
|
# The document element to be collapsed.
|
56
|
-
def collapse(element
|
55
|
+
def collapse(element)
|
57
56
|
hash = get_attributes(element)
|
58
57
|
|
59
58
|
if element.has_elements?
|
60
|
-
element.each_element {|child| merge_element!(hash, child
|
59
|
+
element.each_element {|child| merge_element!(hash, child) }
|
61
60
|
merge_texts!(hash, element) unless empty_content?(element)
|
62
61
|
hash
|
63
62
|
else
|
metadata
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activesupport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.2.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:
|
11
|
+
date: 2014-08-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0.6'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.
|
19
|
+
version: 0.7.0.beta1
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.8'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0.6'
|
30
27
|
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.
|
29
|
+
version: 0.7.0.beta1
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.8'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: json
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,6 +148,7 @@ files:
|
|
148
148
|
- lib/active_support/core_ext/date_time/calculations.rb
|
149
149
|
- lib/active_support/core_ext/date_time/conversions.rb
|
150
150
|
- lib/active_support/core_ext/date_time/zones.rb
|
151
|
+
- lib/active_support/core_ext/digest/uuid.rb
|
151
152
|
- lib/active_support/core_ext/enumerable.rb
|
152
153
|
- lib/active_support/core_ext/file.rb
|
153
154
|
- lib/active_support/core_ext/file/atomic.rb
|
@@ -160,12 +161,14 @@ files:
|
|
160
161
|
- lib/active_support/core_ext/hash/keys.rb
|
161
162
|
- lib/active_support/core_ext/hash/reverse_merge.rb
|
162
163
|
- lib/active_support/core_ext/hash/slice.rb
|
164
|
+
- lib/active_support/core_ext/hash/transform_values.rb
|
163
165
|
- lib/active_support/core_ext/integer.rb
|
164
166
|
- lib/active_support/core_ext/integer/inflections.rb
|
165
167
|
- lib/active_support/core_ext/integer/multiple.rb
|
166
168
|
- lib/active_support/core_ext/integer/time.rb
|
167
169
|
- lib/active_support/core_ext/kernel.rb
|
168
170
|
- lib/active_support/core_ext/kernel/agnostics.rb
|
171
|
+
- lib/active_support/core_ext/kernel/concern.rb
|
169
172
|
- lib/active_support/core_ext/kernel/debugger.rb
|
170
173
|
- lib/active_support/core_ext/kernel/reporting.rb
|
171
174
|
- lib/active_support/core_ext/kernel/singleton_class.rb
|
@@ -197,8 +200,8 @@ files:
|
|
197
200
|
- lib/active_support/core_ext/object/duplicable.rb
|
198
201
|
- lib/active_support/core_ext/object/inclusion.rb
|
199
202
|
- lib/active_support/core_ext/object/instance_variables.rb
|
203
|
+
- lib/active_support/core_ext/object/itself.rb
|
200
204
|
- lib/active_support/core_ext/object/json.rb
|
201
|
-
- lib/active_support/core_ext/object/to_json.rb
|
202
205
|
- lib/active_support/core_ext/object/to_param.rb
|
203
206
|
- lib/active_support/core_ext/object/to_query.rb
|
204
207
|
- lib/active_support/core_ext/object/try.rb
|
@@ -243,7 +246,6 @@ files:
|
|
243
246
|
- lib/active_support/descendants_tracker.rb
|
244
247
|
- lib/active_support/duration.rb
|
245
248
|
- lib/active_support/file_update_checker.rb
|
246
|
-
- lib/active_support/file_watcher.rb
|
247
249
|
- lib/active_support/gem_version.rb
|
248
250
|
- lib/active_support/gzip.rb
|
249
251
|
- lib/active_support/hash_with_indifferent_access.rb
|
@@ -289,7 +291,6 @@ files:
|
|
289
291
|
- lib/active_support/rails.rb
|
290
292
|
- lib/active_support/railtie.rb
|
291
293
|
- lib/active_support/rescuable.rb
|
292
|
-
- lib/active_support/security_utils.rb
|
293
294
|
- lib/active_support/string_inquirer.rb
|
294
295
|
- lib/active_support/subscriber.rb
|
295
296
|
- lib/active_support/tagged_logging.rb
|
@@ -332,12 +333,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
332
333
|
version: 1.9.3
|
333
334
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
334
335
|
requirements:
|
335
|
-
- - "
|
336
|
+
- - ">"
|
336
337
|
- !ruby/object:Gem::Version
|
337
|
-
version:
|
338
|
+
version: 1.3.1
|
338
339
|
requirements: []
|
339
340
|
rubyforge_project:
|
340
|
-
rubygems_version: 2.
|
341
|
+
rubygems_version: 2.2.2
|
341
342
|
signing_key:
|
342
343
|
specification_version: 4
|
343
344
|
summary: A toolkit of support libraries and Ruby core extensions extracted from the
|