activesupport 3.2.15 → 3.2.22.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 636193f4141de35df8d61b98d26230c67f46c94a
4
- data.tar.gz: 91fb48ab66b85564d54e567f188b9aa08e9c63cb
3
+ metadata.gz: 4b15bde7001a62e9472c83fc6f8e6db88beb52ec
4
+ data.tar.gz: 303f5296b0c7e8aecd64a8113f3facc515a5415a
5
5
  SHA512:
6
- metadata.gz: ab6b28970b7f8891c2420b335a3100ae2809c7058fbe0a96a05708197b7a0aff4477f340f27d580f3f5a6cde599463b63b931ba50ad17f9497ca372a157416b9
7
- data.tar.gz: 108c6bc3539cb237131030b3eb6f4e99e7c14e49f8a15a38bbf72f5e724c2cd861acf740c28827ec911e7bce67ca9b72d94d356db684f888b8d49e79e6b38020
6
+ metadata.gz: b31859710c9973c587e6eae0a1156360f7a4d4a1f34b120de08672f93c5bb87222a3d97ecaeb3fa6a3c195713a17018244d2979834fcbaecf44e6b530ca37cbf
7
+ data.tar.gz: af7fbe3a0fc5916afcacabfb17e3390483641773af5f1b38e917e0d009f74761f4e3a94bc0c83f68b9022532f609c7c18c475e6b227ce18e7653643764011e15
data/CHANGELOG.md CHANGED
@@ -1,3 +1,37 @@
1
+ ## Rails 3.2.22 (Jun 16, 2015) ##
2
+
3
+ * Fix denial of service vulnerability in the XML processing.
4
+
5
+ CVE-2015-3227.
6
+
7
+ *Aaron Patterson*
8
+
9
+
10
+ ## Rails 3.2.19 (Jul 2, 2014) ##
11
+
12
+ * Make sure Active Support configurations are applied correctly.
13
+
14
+ Before this change configuration set using `config.active_support`
15
+ would not be set.
16
+
17
+ *Rafael Mendonça França*
18
+
19
+
20
+ ## Rails 3.2.18 (May 6, 2014) ##
21
+
22
+ * No changes.
23
+
24
+
25
+ ## Rails 3.2.17 (Feb 18, 2014) ##
26
+
27
+ * No changes.
28
+
29
+
30
+ ## Rails 3.2.16 (Dec 3, 2013) ##
31
+
32
+ * No changes.
33
+
34
+
1
35
  ## Rails 3.2.15 (Oct 16, 2013) ##
2
36
 
3
37
  * Fix ActiveSupport::Cache::FileStore#cleanup to no longer rely on missing each_key method.
@@ -16,7 +16,9 @@ class BigDecimal
16
16
  #
17
17
  # Note that reconstituting YAML floats to native floats may lose precision.
18
18
  def to_yaml(opts = {})
19
- return super if defined?(YAML::ENGINE) && !YAML::ENGINE.syck?
19
+ return super if
20
+ (defined?(YAML::ENGINE) && !YAML::ENGINE.syck?) ||
21
+ (defined?(Psych) && YAML == Psych)
20
22
 
21
23
  YAML.quick_emit(nil, opts) do |out|
22
24
  string = to_s
@@ -109,7 +109,9 @@ class Class
109
109
  end
110
110
 
111
111
  private
112
- def singleton_class?
113
- ancestors.first != self
114
- end
112
+ unless respond_to?(:singleton_class?)
113
+ def singleton_class?
114
+ ancestors.first != self
115
+ end
116
+ end
115
117
  end
@@ -138,6 +138,12 @@ class DateTime
138
138
 
139
139
  # Layers additional behavior on DateTime#<=> so that Time and ActiveSupport::TimeWithZone instances can be compared with a DateTime
140
140
  def <=>(other)
141
- super other.kind_of?(Infinity) ? other : other.to_datetime
141
+ if other.kind_of?(Infinity)
142
+ super
143
+ elsif other.respond_to? :to_datetime
144
+ super other.to_datetime
145
+ else
146
+ nil
147
+ end
142
148
  end
143
149
  end
@@ -55,5 +55,12 @@ module ActiveSupport
55
55
 
56
56
  Time.zone_default = zone_default
57
57
  end
58
+
59
+ initializer "active_support.set_configs" do |app|
60
+ app.config.active_support.each do |k, v|
61
+ k = "#{k}="
62
+ ActiveSupport.send(k, v) if ActiveSupport.respond_to? k
63
+ end
64
+ end
58
65
  end
59
66
  end
@@ -0,0 +1,27 @@
1
+ require 'digest'
2
+
3
+ module ActiveSupport
4
+ module SecurityUtils
5
+ # Constant time string comparison.
6
+ #
7
+ # The values compared should be of fixed length, such as strings
8
+ # that have already been processed by HMAC. This should not be used
9
+ # on variable length plaintext strings because it could leak length info
10
+ # via timing attacks.
11
+ def secure_compare(a, b)
12
+ return false unless a.bytesize == b.bytesize
13
+
14
+ l = a.unpack "C#{a.bytesize}"
15
+
16
+ res = 0
17
+ b.each_byte { |byte| res |= byte ^ l.shift }
18
+ res == 0
19
+ end
20
+ module_function :secure_compare
21
+
22
+ def variable_size_secure_compare(a, b) # :nodoc:
23
+ secure_compare(::Digest::SHA256.hexdigest(a), ::Digest::SHA256.hexdigest(b))
24
+ end
25
+ module_function :variable_size_secure_compare
26
+ end
27
+ end
@@ -1,4 +1,8 @@
1
- require 'test/unit/testcase'
1
+ begin
2
+ require 'test/unit/testcase'
3
+ rescue LoadError => e
4
+ raise LoadError, "Please add test-unit gem to your Gemfile: `gem 'test-unit', '~> 3.0'` (#{e.message})", e.backtrace
5
+ end
2
6
  require 'active_support/testing/setup_and_teardown'
3
7
  require 'active_support/testing/assertions'
4
8
  require 'active_support/testing/deprecation'
@@ -156,7 +156,12 @@ end
156
156
 
157
157
  # Only in subprocess for windows / jruby.
158
158
  if ENV['ISOLATION_TEST']
159
- require "test/unit/collector/objectspace"
159
+ begin
160
+ require "test/unit/collector/objectspace"
161
+ rescue LoadError => e
162
+ raise LoadError, "Please add test-unit gem to your Gemfile: `gem 'test-unit', '~> 3.0'` (#{e.message})", e.backtrace
163
+ end
164
+
160
165
  class Test::Unit::Collector::ObjectSpace
161
166
  def include?(test)
162
167
  super && test.method_name == ENV['ISOLATION_TEST']
@@ -223,6 +223,7 @@ module ActiveSupport
223
223
  # Compare this time zone to the parameter. The two are compared first on
224
224
  # their offsets, and then by name.
225
225
  def <=>(zone)
226
+ return unless zone.respond_to?(:utc_offset) && zone.respond_to?(:name)
226
227
  result = (utc_offset <=> zone.utc_offset)
227
228
  result = (name <=> zone.name) if result == 0
228
229
  result
@@ -267,7 +268,7 @@ module ActiveSupport
267
268
  #
268
269
  # Time.zone.now # => Fri, 31 Dec 1999 14:00:00 HST -10:00
269
270
  # Time.zone.parse('22:30:00') # => Fri, 31 Dec 1999 22:30:00 HST -10:00
270
- def parse(str, now=now)
271
+ def parse(str, now=self.now)
271
272
  parts = Date._parse(str, false)
272
273
  return if parts.empty?
273
274
 
@@ -2,8 +2,8 @@ module ActiveSupport
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 3
4
4
  MINOR = 2
5
- TINY = 15
6
- PRE = nil
5
+ TINY = 22
6
+ PRE = "5"
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
9
9
  end
@@ -77,6 +77,9 @@ module ActiveSupport
77
77
  end
78
78
 
79
79
  attr_reader :backend
80
+ attr_accessor :depth
81
+ self.depth = 100
82
+
80
83
  delegate :parse, :to => :backend
81
84
 
82
85
  def backend=(name)
@@ -47,7 +47,7 @@ module ActiveSupport
47
47
  xml_string_reader = StringReader.new(data)
48
48
  xml_input_source = InputSource.new(xml_string_reader)
49
49
  doc = @dbf.new_document_builder.parse(xml_input_source)
50
- merge_element!({CONTENT_KEY => ''}, doc.document_element)
50
+ merge_element!({CONTENT_KEY => ''}, doc.document_element, XmlMini.depth)
51
51
  end
52
52
  end
53
53
 
@@ -59,9 +59,10 @@ module ActiveSupport
59
59
  # Hash to merge the converted element into.
60
60
  # element::
61
61
  # XML element to merge into hash
62
- def merge_element!(hash, element)
62
+ def merge_element!(hash, element, depth)
63
+ raise 'Document too deep!' if depth == 0
63
64
  delete_empty(hash)
64
- merge!(hash, element.tag_name, collapse(element))
65
+ merge!(hash, element.tag_name, collapse(element, depth))
65
66
  end
66
67
 
67
68
  def delete_empty(hash)
@@ -72,14 +73,14 @@ module ActiveSupport
72
73
  #
73
74
  # element::
74
75
  # The document element to be collapsed.
75
- def collapse(element)
76
+ def collapse(element, depth)
76
77
  hash = get_attributes(element)
77
78
 
78
79
  child_nodes = element.child_nodes
79
80
  if child_nodes.length > 0
80
81
  for i in 0...child_nodes.length
81
82
  child = child_nodes.item(i)
82
- merge_element!(hash, child) unless child.node_type == Node.TEXT_NODE
83
+ merge_element!(hash, child, depth - 1) unless child.node_type == Node.TEXT_NODE
83
84
  end
84
85
  merge_texts!(hash, element) unless empty_content?(element)
85
86
  hash
@@ -30,7 +30,7 @@ module ActiveSupport
30
30
  doc = REXML::Document.new(data)
31
31
 
32
32
  if doc.root
33
- merge_element!({}, doc.root)
33
+ merge_element!({}, doc.root, XmlMini.depth)
34
34
  else
35
35
  raise REXML::ParseException,
36
36
  "The document #{doc.to_s.inspect} does not have a valid root"
@@ -45,19 +45,20 @@ module ActiveSupport
45
45
  # Hash to merge the converted element into.
46
46
  # element::
47
47
  # XML element to merge into hash
48
- def merge_element!(hash, element)
49
- merge!(hash, element.name, collapse(element))
48
+ def merge_element!(hash, element, depth)
49
+ raise REXML::ParseException, "The document is too deep" if depth == 0
50
+ merge!(hash, element.name, collapse(element, depth))
50
51
  end
51
52
 
52
53
  # Actually converts an XML document element into a data structure.
53
54
  #
54
55
  # element::
55
56
  # The document element to be collapsed.
56
- def collapse(element)
57
+ def collapse(element, depth)
57
58
  hash = get_attributes(element)
58
59
 
59
60
  if element.has_elements?
60
- element.each_element {|child| merge_element!(hash, child) }
61
+ element.each_element {|child| merge_element!(hash, child, depth - 1) }
61
62
  merge_texts!(hash, element) unless empty_content?(element)
62
63
  hash
63
64
  else
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: 3.2.15
4
+ version: 3.2.22.5
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: 2013-10-16 00:00:00.000000000 Z
11
+ date: 2016-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -55,6 +55,7 @@ files:
55
55
  - CHANGELOG.md
56
56
  - MIT-LICENSE
57
57
  - README.rdoc
58
+ - lib/active_support.rb
58
59
  - lib/active_support/all.rb
59
60
  - lib/active_support/backtrace_cleaner.rb
60
61
  - lib/active_support/base64.rb
@@ -62,15 +63,17 @@ files:
62
63
  - lib/active_support/benchmarkable.rb
63
64
  - lib/active_support/buffered_logger.rb
64
65
  - lib/active_support/builder.rb
66
+ - lib/active_support/cache.rb
65
67
  - lib/active_support/cache/file_store.rb
66
68
  - lib/active_support/cache/mem_cache_store.rb
67
69
  - lib/active_support/cache/memory_store.rb
68
70
  - lib/active_support/cache/null_store.rb
69
71
  - lib/active_support/cache/strategy/local_cache.rb
70
- - lib/active_support/cache.rb
71
72
  - lib/active_support/callbacks.rb
72
73
  - lib/active_support/concern.rb
73
74
  - lib/active_support/configurable.rb
75
+ - lib/active_support/core_ext.rb
76
+ - lib/active_support/core_ext/array.rb
74
77
  - lib/active_support/core_ext/array/access.rb
75
78
  - lib/active_support/core_ext/array/conversions.rb
76
79
  - lib/active_support/core_ext/array/extract_options.rb
@@ -79,15 +82,14 @@ files:
79
82
  - lib/active_support/core_ext/array/random_access.rb
80
83
  - lib/active_support/core_ext/array/uniq_by.rb
81
84
  - lib/active_support/core_ext/array/wrap.rb
82
- - lib/active_support/core_ext/array.rb
83
85
  - lib/active_support/core_ext/benchmark.rb
84
- - lib/active_support/core_ext/big_decimal/conversions.rb
85
86
  - lib/active_support/core_ext/big_decimal.rb
87
+ - lib/active_support/core_ext/big_decimal/conversions.rb
88
+ - lib/active_support/core_ext/class.rb
86
89
  - lib/active_support/core_ext/class/attribute.rb
87
90
  - lib/active_support/core_ext/class/attribute_accessors.rb
88
91
  - lib/active_support/core_ext/class/delegating_attributes.rb
89
92
  - lib/active_support/core_ext/class/subclasses.rb
90
- - lib/active_support/core_ext/class.rb
91
93
  - lib/active_support/core_ext/date/acts_like.rb
92
94
  - lib/active_support/core_ext/date/calculations.rb
93
95
  - lib/active_support/core_ext/date/conversions.rb
@@ -99,11 +101,12 @@ files:
99
101
  - lib/active_support/core_ext/date_time/zones.rb
100
102
  - lib/active_support/core_ext/enumerable.rb
101
103
  - lib/active_support/core_ext/exception.rb
104
+ - lib/active_support/core_ext/file.rb
102
105
  - lib/active_support/core_ext/file/atomic.rb
103
106
  - lib/active_support/core_ext/file/path.rb
104
- - lib/active_support/core_ext/file.rb
105
- - lib/active_support/core_ext/float/rounding.rb
106
107
  - lib/active_support/core_ext/float.rb
108
+ - lib/active_support/core_ext/float/rounding.rb
109
+ - lib/active_support/core_ext/hash.rb
107
110
  - lib/active_support/core_ext/hash/conversions.rb
108
111
  - lib/active_support/core_ext/hash/deep_dup.rb
109
112
  - lib/active_support/core_ext/hash/deep_merge.rb
@@ -113,19 +116,19 @@ files:
113
116
  - lib/active_support/core_ext/hash/keys.rb
114
117
  - lib/active_support/core_ext/hash/reverse_merge.rb
115
118
  - lib/active_support/core_ext/hash/slice.rb
116
- - lib/active_support/core_ext/hash.rb
119
+ - lib/active_support/core_ext/integer.rb
117
120
  - lib/active_support/core_ext/integer/inflections.rb
118
121
  - lib/active_support/core_ext/integer/multiple.rb
119
122
  - lib/active_support/core_ext/integer/time.rb
120
- - lib/active_support/core_ext/integer.rb
121
123
  - lib/active_support/core_ext/io.rb
124
+ - lib/active_support/core_ext/kernel.rb
122
125
  - lib/active_support/core_ext/kernel/agnostics.rb
123
126
  - lib/active_support/core_ext/kernel/debugger.rb
124
127
  - lib/active_support/core_ext/kernel/reporting.rb
125
128
  - lib/active_support/core_ext/kernel/singleton_class.rb
126
- - lib/active_support/core_ext/kernel.rb
127
129
  - lib/active_support/core_ext/load_error.rb
128
130
  - lib/active_support/core_ext/logger.rb
131
+ - lib/active_support/core_ext/module.rb
129
132
  - lib/active_support/core_ext/module/aliasing.rb
130
133
  - lib/active_support/core_ext/module/anonymous.rb
131
134
  - lib/active_support/core_ext/module/attr_internal.rb
@@ -138,11 +141,11 @@ files:
138
141
  - lib/active_support/core_ext/module/reachable.rb
139
142
  - lib/active_support/core_ext/module/remove_method.rb
140
143
  - lib/active_support/core_ext/module/synchronization.rb
141
- - lib/active_support/core_ext/module.rb
142
144
  - lib/active_support/core_ext/name_error.rb
145
+ - lib/active_support/core_ext/numeric.rb
143
146
  - lib/active_support/core_ext/numeric/bytes.rb
144
147
  - lib/active_support/core_ext/numeric/time.rb
145
- - lib/active_support/core_ext/numeric.rb
148
+ - lib/active_support/core_ext/object.rb
146
149
  - lib/active_support/core_ext/object/acts_like.rb
147
150
  - lib/active_support/core_ext/object/blank.rb
148
151
  - lib/active_support/core_ext/object/conversions.rb
@@ -154,18 +157,18 @@ files:
154
157
  - lib/active_support/core_ext/object/to_query.rb
155
158
  - lib/active_support/core_ext/object/try.rb
156
159
  - lib/active_support/core_ext/object/with_options.rb
157
- - lib/active_support/core_ext/object.rb
158
160
  - lib/active_support/core_ext/proc.rb
159
- - lib/active_support/core_ext/process/daemon.rb
160
161
  - lib/active_support/core_ext/process.rb
162
+ - lib/active_support/core_ext/process/daemon.rb
163
+ - lib/active_support/core_ext/range.rb
161
164
  - lib/active_support/core_ext/range/blockless_step.rb
162
165
  - lib/active_support/core_ext/range/conversions.rb
163
166
  - lib/active_support/core_ext/range/cover.rb
164
167
  - lib/active_support/core_ext/range/include_range.rb
165
168
  - lib/active_support/core_ext/range/overlaps.rb
166
- - lib/active_support/core_ext/range.rb
167
169
  - lib/active_support/core_ext/regexp.rb
168
170
  - lib/active_support/core_ext/rexml.rb
171
+ - lib/active_support/core_ext/string.rb
169
172
  - lib/active_support/core_ext/string/access.rb
170
173
  - lib/active_support/core_ext/string/behavior.rb
171
174
  - lib/active_support/core_ext/string/conversions.rb
@@ -180,7 +183,6 @@ files:
180
183
  - lib/active_support/core_ext/string/starts_ends_with.rb
181
184
  - lib/active_support/core_ext/string/strip.rb
182
185
  - lib/active_support/core_ext/string/xchar.rb
183
- - lib/active_support/core_ext/string.rb
184
186
  - lib/active_support/core_ext/time/acts_like.rb
185
187
  - lib/active_support/core_ext/time/calculations.rb
186
188
  - lib/active_support/core_ext/time/conversions.rb
@@ -188,14 +190,13 @@ files:
188
190
  - lib/active_support/core_ext/time/publicize_conversion_methods.rb
189
191
  - lib/active_support/core_ext/time/zones.rb
190
192
  - lib/active_support/core_ext/uri.rb
191
- - lib/active_support/core_ext.rb
192
- - lib/active_support/dependencies/autoload.rb
193
193
  - lib/active_support/dependencies.rb
194
+ - lib/active_support/dependencies/autoload.rb
195
+ - lib/active_support/deprecation.rb
194
196
  - lib/active_support/deprecation/behaviors.rb
195
197
  - lib/active_support/deprecation/method_wrappers.rb
196
198
  - lib/active_support/deprecation/proxy_wrappers.rb
197
199
  - lib/active_support/deprecation/reporting.rb
198
- - lib/active_support/deprecation.rb
199
200
  - lib/active_support/descendants_tracker.rb
200
201
  - lib/active_support/duration.rb
201
202
  - lib/active_support/file_update_checker.rb
@@ -205,35 +206,36 @@ files:
205
206
  - lib/active_support/i18n.rb
206
207
  - lib/active_support/i18n_railtie.rb
207
208
  - lib/active_support/inflections.rb
209
+ - lib/active_support/inflector.rb
208
210
  - lib/active_support/inflector/inflections.rb
209
211
  - lib/active_support/inflector/methods.rb
210
212
  - lib/active_support/inflector/transliterate.rb
211
- - lib/active_support/inflector.rb
213
+ - lib/active_support/json.rb
212
214
  - lib/active_support/json/decoding.rb
213
215
  - lib/active_support/json/encoding.rb
214
216
  - lib/active_support/json/variable.rb
215
- - lib/active_support/json.rb
216
217
  - lib/active_support/lazy_load_hooks.rb
217
218
  - lib/active_support/locale/en.yml
218
- - lib/active_support/log_subscriber/test_helper.rb
219
219
  - lib/active_support/log_subscriber.rb
220
+ - lib/active_support/log_subscriber/test_helper.rb
220
221
  - lib/active_support/memoizable.rb
221
222
  - lib/active_support/message_encryptor.rb
222
223
  - lib/active_support/message_verifier.rb
224
+ - lib/active_support/multibyte.rb
223
225
  - lib/active_support/multibyte/chars.rb
224
226
  - lib/active_support/multibyte/exceptions.rb
225
227
  - lib/active_support/multibyte/unicode.rb
226
228
  - lib/active_support/multibyte/utils.rb
227
- - lib/active_support/multibyte.rb
229
+ - lib/active_support/notifications.rb
228
230
  - lib/active_support/notifications/fanout.rb
229
231
  - lib/active_support/notifications/instrumenter.rb
230
- - lib/active_support/notifications.rb
231
232
  - lib/active_support/option_merger.rb
232
233
  - lib/active_support/ordered_hash.rb
233
234
  - lib/active_support/ordered_options.rb
234
235
  - lib/active_support/railtie.rb
235
236
  - lib/active_support/rescuable.rb
236
237
  - lib/active_support/ruby/shim.rb
238
+ - lib/active_support/security_utils.rb
237
239
  - lib/active_support/string_inquirer.rb
238
240
  - lib/active_support/tagged_logging.rb
239
241
  - lib/active_support/test_case.rb
@@ -243,28 +245,27 @@ files:
243
245
  - lib/active_support/testing/isolation.rb
244
246
  - lib/active_support/testing/mochaing.rb
245
247
  - lib/active_support/testing/pending.rb
248
+ - lib/active_support/testing/performance.rb
246
249
  - lib/active_support/testing/performance/jruby.rb
247
250
  - lib/active_support/testing/performance/rubinius.rb
251
+ - lib/active_support/testing/performance/ruby.rb
248
252
  - lib/active_support/testing/performance/ruby/mri.rb
249
253
  - lib/active_support/testing/performance/ruby/yarv.rb
250
- - lib/active_support/testing/performance/ruby.rb
251
- - lib/active_support/testing/performance.rb
252
254
  - lib/active_support/testing/setup_and_teardown.rb
253
- - lib/active_support/time/autoload.rb
254
255
  - lib/active_support/time.rb
256
+ - lib/active_support/time/autoload.rb
255
257
  - lib/active_support/time_with_zone.rb
256
258
  - lib/active_support/values/time_zone.rb
257
259
  - lib/active_support/values/unicode_tables.dat
258
260
  - lib/active_support/version.rb
259
261
  - lib/active_support/whiny_nil.rb
262
+ - lib/active_support/xml_mini.rb
260
263
  - lib/active_support/xml_mini/jdom.rb
261
264
  - lib/active_support/xml_mini/libxml.rb
262
265
  - lib/active_support/xml_mini/libxmlsax.rb
263
266
  - lib/active_support/xml_mini/nokogiri.rb
264
267
  - lib/active_support/xml_mini/nokogirisax.rb
265
268
  - lib/active_support/xml_mini/rexml.rb
266
- - lib/active_support/xml_mini.rb
267
- - lib/active_support.rb
268
269
  homepage: http://www.rubyonrails.org
269
270
  licenses:
270
271
  - MIT
@@ -287,9 +288,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
288
  version: '0'
288
289
  requirements: []
289
290
  rubyforge_project:
290
- rubygems_version: 2.0.2
291
+ rubygems_version: 2.6.6
291
292
  signing_key:
292
293
  specification_version: 4
293
294
  summary: A toolkit of support libraries and Ruby core extensions extracted from the
294
295
  Rails framework.
295
296
  test_files: []
297
+ has_rdoc: