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.

Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +140 -714
  3. data/README.rdoc +7 -2
  4. data/lib/active_support/backtrace_cleaner.rb +4 -4
  5. data/lib/active_support/cache.rb +18 -20
  6. data/lib/active_support/cache/file_store.rb +5 -0
  7. data/lib/active_support/cache/strategy/local_cache.rb +5 -4
  8. data/lib/active_support/cache/strategy/local_cache_middleware.rb +5 -0
  9. data/lib/active_support/callbacks.rb +92 -140
  10. data/lib/active_support/concern.rb +9 -1
  11. data/lib/active_support/core_ext/array/access.rb +5 -1
  12. data/lib/active_support/core_ext/array/grouping.rb +5 -0
  13. data/lib/active_support/core_ext/class/delegating_attributes.rb +4 -0
  14. data/lib/active_support/core_ext/date_time/calculations.rb +11 -1
  15. data/lib/active_support/core_ext/date_time/conversions.rb +2 -2
  16. data/lib/active_support/core_ext/digest/uuid.rb +51 -0
  17. data/lib/active_support/core_ext/hash.rb +1 -0
  18. data/lib/active_support/core_ext/hash/conversions.rb +2 -3
  19. data/lib/active_support/core_ext/hash/indifferent_access.rb +1 -1
  20. data/lib/active_support/core_ext/hash/keys.rb +10 -6
  21. data/lib/active_support/core_ext/hash/transform_values.rb +23 -0
  22. data/lib/active_support/core_ext/kernel.rb +3 -2
  23. data/lib/active_support/core_ext/kernel/concern.rb +10 -0
  24. data/lib/active_support/core_ext/kernel/reporting.rb +14 -0
  25. data/lib/active_support/core_ext/load_error.rb +4 -1
  26. data/lib/active_support/core_ext/module/delegation.rb +13 -25
  27. data/lib/active_support/core_ext/numeric/time.rb +1 -19
  28. data/lib/active_support/core_ext/object.rb +1 -0
  29. data/lib/active_support/core_ext/object/duplicable.rb +4 -11
  30. data/lib/active_support/core_ext/object/itself.rb +12 -0
  31. data/lib/active_support/core_ext/object/json.rb +1 -1
  32. data/lib/active_support/core_ext/object/to_query.rb +2 -1
  33. data/lib/active_support/core_ext/object/with_options.rb +15 -2
  34. data/lib/active_support/core_ext/string/access.rb +4 -4
  35. data/lib/active_support/core_ext/string/filters.rb +25 -1
  36. data/lib/active_support/core_ext/string/inflections.rb +3 -1
  37. data/lib/active_support/core_ext/string/output_safety.rb +29 -19
  38. data/lib/active_support/core_ext/thread.rb +7 -0
  39. data/lib/active_support/core_ext/time/conversions.rb +1 -1
  40. data/lib/active_support/core_ext/time/zones.rb +0 -1
  41. data/lib/active_support/dependencies.rb +5 -4
  42. data/lib/active_support/duration.rb +2 -3
  43. data/lib/active_support/gem_version.rb +3 -3
  44. data/lib/active_support/hash_with_indifferent_access.rb +13 -5
  45. data/lib/active_support/i18n_railtie.rb +1 -7
  46. data/lib/active_support/inflector/inflections.rb +1 -1
  47. data/lib/active_support/inflector/methods.rb +39 -15
  48. data/lib/active_support/json/encoding.rb +0 -4
  49. data/lib/active_support/logger.rb +0 -14
  50. data/lib/active_support/logger_silence.rb +3 -24
  51. data/lib/active_support/message_encryptor.rb +2 -1
  52. data/lib/active_support/multibyte/unicode.rb +5 -3
  53. data/lib/active_support/notifications.rb +7 -2
  54. data/lib/active_support/notifications/fanout.rb +11 -6
  55. data/lib/active_support/number_helper.rb +7 -8
  56. data/lib/active_support/number_helper/number_to_rounded_converter.rb +2 -2
  57. data/lib/active_support/test_case.rb +3 -13
  58. data/lib/active_support/testing/assertions.rb +1 -1
  59. data/lib/active_support/testing/declarative.rb +1 -25
  60. data/lib/active_support/testing/isolation.rb +16 -6
  61. data/lib/active_support/testing/tagged_logging.rb +1 -1
  62. data/lib/active_support/testing/time_helpers.rb +5 -1
  63. data/lib/active_support/time.rb +0 -2
  64. data/lib/active_support/time_with_zone.rb +14 -3
  65. data/lib/active_support/values/time_zone.rb +76 -75
  66. data/lib/active_support/xml_mini.rb +0 -3
  67. data/lib/active_support/xml_mini/jdom.rb +5 -6
  68. data/lib/active_support/xml_mini/rexml.rb +5 -6
  69. metadata +17 -16
  70. data/lib/active_support/core_ext/object/to_json.rb +0 -5
  71. data/lib/active_support/file_watcher.rb +0 -36
  72. data/lib/active_support/security_utils.rb +0 -27
@@ -6,7 +6,7 @@ module ActiveSupport
6
6
  attr_writer :tagged_logger
7
7
 
8
8
  def before_setup
9
- if tagged_logger
9
+ if tagged_logger && tagged_logger.info?
10
10
  heading = "#{self.class}: #{name}"
11
11
  divider = '-' * heading.size
12
12
  tagged_logger.info divider
@@ -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)
@@ -1,5 +1,3 @@
1
- require 'active_support'
2
-
3
1
  module ActiveSupport
4
2
  autoload :Duration, 'active_support/duration'
5
3
  autoload :TimeWithZone, 'active_support/time_with_zone'
@@ -185,8 +185,11 @@ module ActiveSupport
185
185
  end
186
186
  alias_method :rfc822, :rfc2822
187
187
 
188
- # <tt>:db</tt> format outputs time in UTC; all others output time in local.
189
- # Uses TimeWithZone's +strftime+, so <tt>%Z</tt> and <tt>%z</tt> work correctly.
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
- utc.to_f - other.to_f
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/Volgograd",
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
- # Assumes self represents an offset from UTC in seconds (as returned from
195
- # Time#utc_offset) and turns this into an +HH:MM formatted string.
196
- #
197
- # TimeZone.seconds_to_utc_offset(-21_600) # => "-06:00"
198
- def self.seconds_to_utc_offset(seconds, colon = true)
199
- format = colon ? UTC_OFFSET_WITH_COLON : UTC_OFFSET_WITHOUT_COLON
200
- sign = (seconds < 0 ? '-' : '+')
201
- hours = seconds.abs / 3600
202
- minutes = (seconds.abs % 3600) / 60
203
- format % [sign, hours, minutes]
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
- def time_now
421
- Time.now
422
- end
421
+ def time_now
422
+ Time.now
423
+ end
423
424
  end
424
425
  end
@@ -78,9 +78,6 @@ module ActiveSupport
78
78
  )
79
79
  end
80
80
 
81
- attr_accessor :depth
82
- self.depth = 100
83
-
84
81
  delegate :parse, :to => :backend
85
82
 
86
83
  def backend
@@ -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, XmlMini.depth)
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, depth)
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, depth))
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, depth)
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, depth - 1) unless child.node_type == Node.TEXT_NODE
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, XmlMini.depth)
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, depth)
48
- raise REXML::ParseException, "The document is too deep" if depth == 0
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, depth)
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, depth - 1) }
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.1.16
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: 2016-07-12 00:00:00.000000000 Z
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.6.9
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.6.9
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: '0'
338
+ version: 1.3.1
338
339
  requirements: []
339
340
  rubyforge_project:
340
- rubygems_version: 2.4.5.1
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