autoparse 0.2.1 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG CHANGED
@@ -1,3 +1,13 @@
1
+ == 0.2.3
2
+
3
+ * fixed stupid bug in inspect method
4
+
5
+ == 0.2.2
6
+
7
+ * the AutoParse.generate method was changed to use an options Hash
8
+ * fixed some issues around array imports and exports
9
+ * schemas of type object should now correctly inherit their id URI values
10
+
1
11
  == 0.2.1
2
12
 
3
13
  * fixed URI resolution when base URI is missing
@@ -21,7 +21,9 @@ module AutoParse
21
21
  @schemas ||= {}
22
22
  end
23
23
 
24
- def self.generate(schema_data, uri=nil)
24
+ def self.generate(schema_data, options={})
25
+ uri = options[:uri]
26
+ parent = options[:parent]
25
27
  if schema_data["extends"]
26
28
  super_uri = uri + Addressable::URI.parse(schema_data["extends"])
27
29
  super_schema = self.schemas[super_uri]
@@ -37,6 +39,9 @@ module AutoParse
37
39
  @uri = Addressable::URI.parse(uri)
38
40
  @uri.normalize! if @uri != nil
39
41
  @schema_data = schema_data
42
+ if !self.uri && parent
43
+ @uri = parent.uri
44
+ end
40
45
 
41
46
  def self.additional_properties_schema
42
47
  # Override the superclass implementation so we're not always returning
@@ -57,12 +62,9 @@ module AutoParse
57
62
  property_schema = property_super_schema.data.merge(property_schema)
58
63
  end
59
64
 
60
- if schema_data.has_key?('id')
61
- property_schema_class = AutoParse.generate(property_schema)
62
- else
63
- # If the schema has no ID, it inherits the ID from the parent schema.
64
- property_schema_class = AutoParse.generate(property_schema, @uri)
65
- end
65
+ # If the schema has no ID, it inherits the ID from the parent schema.
66
+ property_schema_class =
67
+ AutoParse.generate(property_schema, :parent => self)
66
68
 
67
69
  self.properties[property_key] = property_schema_class
68
70
  self.keys[property_name] = property_key
@@ -101,7 +103,7 @@ module AutoParse
101
103
  value = self[stripped_method]
102
104
  else
103
105
  # Method not found.
104
- super
106
+ super(method, *params, &block)
105
107
  end
106
108
  # If additionalProperties is simply set to true, no parsing takes
107
109
  # place and all values are treated as 'any'.
@@ -115,7 +117,9 @@ module AutoParse
115
117
 
116
118
  elsif schema_data['additionalProperties']
117
119
  # Unknown properties follow the supplied schema.
118
- ap_schema = AutoParse.generate(schema_data['additionalProperties'])
120
+ ap_schema = AutoParse.generate(
121
+ schema_data['additionalProperties'], :parent => self
122
+ )
119
123
  @additional_properties_schema = ap_schema
120
124
  define_method('method_missing') do |method, *params, &block|
121
125
  # We need to convert from Ruby calling style to JavaScript calling
@@ -172,6 +176,54 @@ module AutoParse
172
176
  return schema
173
177
  end
174
178
 
179
+ def self.import(value, schema_class, type=nil)
180
+ type = schema_class.data['type'] if type == nil
181
+ case type
182
+ when 'string'
183
+ return AutoParse.import_string(value, schema_class)
184
+ when 'boolean'
185
+ return AutoParse.import_boolean(value, schema_class)
186
+ when 'integer'
187
+ return AutoParse.import_integer(value, schema_class)
188
+ when 'number'
189
+ return AutoParse.import_number(value, schema_class)
190
+ when 'array'
191
+ return AutoParse.import_array(value, schema_class)
192
+ when 'object'
193
+ return AutoParse.import_object(value, schema_class)
194
+ when 'null'
195
+ return nil
196
+ when Array
197
+ return AutoParse.import_union(value, schema_class)
198
+ else
199
+ return AutoParse.import_any(value, schema_class)
200
+ end
201
+ end
202
+
203
+ def self.export(value, schema_class, type=nil)
204
+ type = schema_class.data['type'] if type == nil
205
+ case type
206
+ when 'string'
207
+ AutoParse.export_string(value, schema_class)
208
+ when 'boolean'
209
+ AutoParse.export_boolean(value, schema_class)
210
+ when 'integer'
211
+ AutoParse.export_integer(value, schema_class)
212
+ when 'number'
213
+ AutoParse.export_number(value, schema_class)
214
+ when 'array'
215
+ AutoParse.export_array(value, schema_class)
216
+ when 'object'
217
+ AutoParse.export_object(value, schema_class)
218
+ when 'null'
219
+ nil
220
+ when Array
221
+ AutoParse.export_union(value, schema_class)
222
+ else
223
+ AutoParse.export_any(value, schema_class)
224
+ end
225
+ end
226
+
175
227
  def self.import_string(value, schema_class)
176
228
  if value != nil
177
229
  format = schema_class.data['format']
@@ -278,39 +330,39 @@ module AutoParse
278
330
  end
279
331
 
280
332
  def self.import_array(value, schema_class)
281
- array = (if value != nil && !value.respond_to?(:to_ary)
333
+ value = (if value != nil && !value.respond_to?(:to_ary)
282
334
  raise TypeError,
283
335
  "Expected Array, got #{value.class}."
284
336
  else
285
- value.to_ary
337
+ (value || []).to_ary.dup
286
338
  end)
287
339
  items_data = schema_class.data['items']
288
- if items_data && items_data['$ref']
289
- if schema_class && schema_class.uri
290
- items_uri =
291
- schema_class.uri + Addressable::URI.parse(items_data['$ref'])
292
- else
293
- items_uri = Addressable::URI.parse(items_data['$ref'])
294
- end
295
- items_schema = AutoParse.schemas[items_uri]
296
- if items_schema
297
- array.map! do |item|
298
- items_schema.new(item)
299
- end
300
- else
301
- raise ArgumentError,
302
- "Could not find schema: #{items_uri}."
303
- end
340
+ items_schema = AutoParse.generate(items_data, :parent => schema_class)
341
+ if items_schema.data['$ref']
342
+ # Dereference the schema if necessary.
343
+ items_schema = items_schema.dereference
304
344
  end
305
- array
345
+ value.map! do |item|
346
+ AutoParse.import(item, items_schema)
347
+ end
348
+ value
306
349
  end
307
350
 
308
351
  def self.export_array(value, schema_class)
309
- # FIXME: Each item in the Array needs to be exported as well.
310
352
  if value == nil
311
353
  value
312
354
  elsif value.respond_to?(:to_ary)
313
- value.to_ary
355
+ value = value.to_ary.dup
356
+ items_data = schema_class.data['items']
357
+ items_schema = AutoParse.generate(items_data, :parent => schema_class)
358
+ if items_schema.data['$ref']
359
+ # Dereference the schema if necessary.
360
+ items_schema = items_schema.dereference
361
+ end
362
+ value.map! do |item|
363
+ AutoParse.export(item, items_schema)
364
+ end
365
+ value
314
366
  else
315
367
  raise TypeError, "Expected Array, got #{value.class}."
316
368
  end
@@ -335,54 +387,16 @@ module AutoParse
335
387
 
336
388
  def self.import_union(value, schema_class)
337
389
  import_type = match_type(
338
- value, schema_class.data['type'], schema_class.uri
390
+ value, schema_class.data['type'], schema_class
339
391
  )
340
- case import_type
341
- when 'string'
342
- AutoParse.import_string(value, schema_class)
343
- when 'boolean'
344
- AutoParse.import_boolean(value, schema_class)
345
- when 'integer'
346
- AutoParse.import_integer(value, schema_class)
347
- when 'number'
348
- AutoParse.import_number(value, schema_class)
349
- when 'array'
350
- AutoParse.import_array(value, schema_class)
351
- when 'object'
352
- AutoParse.import_object(value, schema_class)
353
- when 'null'
354
- nil
355
- when Class
356
- AutoParse.import_object(value, import_type)
357
- else
358
- AutoParse.import_any(value, schema_class)
359
- end
392
+ AutoParse.import(value, schema_class, import_type)
360
393
  end
361
394
 
362
395
  def self.export_union(value, schema_class)
363
396
  export_type = match_type(
364
- value, schema_class.data['type'], schema_class.uri
397
+ value, schema_class.data['type'], schema_class
365
398
  )
366
- case export_type
367
- when 'string'
368
- AutoParse.export_string(value, schema_class)
369
- when 'boolean'
370
- AutoParse.export_boolean(value, schema_class)
371
- when 'integer'
372
- AutoParse.export_integer(value, schema_class)
373
- when 'number'
374
- AutoParse.export_number(value, schema_class)
375
- when 'array'
376
- AutoParse.export_array(value, schema_class)
377
- when 'object'
378
- AutoParse.export_object(value, schema_class)
379
- when 'null'
380
- nil
381
- when Class
382
- AutoParse.export_object(value, export_type)
383
- else
384
- AutoParse.export_any(value, schema_class)
385
- end
399
+ AutoParse.export(value, schema_class, export_type)
386
400
  end
387
401
 
388
402
  def self.import_any(value, schema_class)
@@ -397,7 +411,7 @@ module AutoParse
397
411
  # Given a value and a union of types, selects the type which is the best
398
412
  # match for the given value. More than one type may match the value, in which
399
413
  # case, the first type in the union will be returned.
400
- def self.match_type(value, union, base_uri=nil)
414
+ def self.match_type(value, union, parent=nil)
401
415
  possible_types = [union].flatten.compact
402
416
  # Strict pass
403
417
  for type in possible_types
@@ -419,11 +433,7 @@ module AutoParse
419
433
  return 'null' if value.nil?
420
434
  when Hash
421
435
  # Schema embedded directly.
422
- unless base_uri
423
- schema_class = AutoParse.generate(type)
424
- else
425
- schema_class = AutoParse.generate(type, base_uri)
426
- end
436
+ schema_class = AutoParse.generate(type, :parent => parent)
427
437
  if type['$ref']
428
438
  schema_class = schema_class.dereference
429
439
  end
@@ -29,9 +29,20 @@ module AutoParse
29
29
  def self.dereference
30
30
  if @schema_data['$ref']
31
31
  # Dereference the schema if necessary.
32
- schema_uri =
33
- self.uri + Addressable::URI.parse(@schema_data['$ref'])
32
+ ref_uri = Addressable::URI.parse(@schema_data['$ref'])
33
+ if self.uri
34
+ schema_uri =
35
+ self.uri + Addressable::URI.parse(@schema_data['$ref'])
36
+ else
37
+ if ref_uri.relative?
38
+ warn("Schema URI is relative, could not resolve against parent.")
39
+ else
40
+ warn("Could not resolve URI against parent.")
41
+ end
42
+ schema_uri = ref_uri
43
+ end
34
44
  schema_class = AutoParse.schemas[schema_uri]
45
+ warn("Schema URI mismatch.") if schema_class.uri != schema_uri
35
46
  if schema_class == nil
36
47
  raise ArgumentError,
37
48
  "Could not find schema: #{@schema_data['$ref']}. " +
@@ -137,13 +148,7 @@ module AutoParse
137
148
  else
138
149
  # This is highly ineffecient, but currently hard to avoid given the
139
150
  # schema is anonymous, making lookups very difficult.
140
- if schema_data.has_key?('id')
141
- schema = AutoParse.generate(schema_data)
142
- else
143
- # If the schema has no ID, it inherits the ID from the parent schema,
144
- # which should be `self`.
145
- schema = AutoParse.generate(schema_data, self.uri)
146
- end
151
+ schema = AutoParse.generate(schema_data, :parent => self)
147
152
  begin
148
153
  return schema.new(property_value).valid?
149
154
  rescue TypeError, ArgumentError, ::JSON::ParserError
@@ -334,26 +339,7 @@ module AutoParse
334
339
 
335
340
  value = self[property_key] || schema_class.data['default']
336
341
 
337
- case schema_class.data['type']
338
- when 'string'
339
- AutoParse.import_string(value, schema_class)
340
- when 'boolean'
341
- AutoParse.import_boolean(value, schema_class)
342
- when 'integer'
343
- AutoParse.import_integer(value, schema_class)
344
- when 'number'
345
- AutoParse.import_number(value, schema_class)
346
- when 'array'
347
- AutoParse.import_array(value, schema_class)
348
- when 'object'
349
- AutoParse.import_object(value, schema_class)
350
- when 'null'
351
- nil
352
- when Array
353
- AutoParse.import_union(value, schema_class)
354
- else
355
- AutoParse.import_any(value, schema_class)
356
- end
342
+ AutoParse.import(value, schema_class)
357
343
  end
358
344
  protected :__get__
359
345
 
@@ -368,26 +354,7 @@ module AutoParse
368
354
  self.class.properties[property_key] = schema_class
369
355
  end
370
356
 
371
- case schema_class.data['type']
372
- when 'string'
373
- self[property_key] = AutoParse.export_string(value, schema_class)
374
- when 'boolean'
375
- self[property_key] = AutoParse.export_boolean(value, schema_class)
376
- when 'integer'
377
- self[property_key] = AutoParse.export_integer(value, schema_class)
378
- when 'number'
379
- self[property_key] = AutoParse.export_number(value, schema_class)
380
- when 'array'
381
- self[property_key] = AutoParse.export_array(value, schema_class)
382
- when 'object'
383
- self[property_key] = AutoParse.export_object(value, schema_class)
384
- when 'null'
385
- self[property_key] = nil
386
- when Array
387
- self[property_key] = AutoParse.export_union(value, schema_class)
388
- else
389
- self[property_key] = AutoParse.export_any(value, schema_class)
390
- end
357
+ self[property_key] = AutoParse.export(value, schema_class)
391
358
  end
392
359
  protected :__set__
393
360
 
@@ -465,14 +432,10 @@ module AutoParse
465
432
  #
466
433
  # @return [String] The instance's state, as a <code>String</code>.
467
434
  def inspect
468
- if self.class.respond_to?(:description)
469
- sprintf(
470
- "#<%s:%#0x DESC:'%s'>",
471
- self.class.to_s, self.object_id, self.class.description
472
- )
473
- else
474
- sprintf("#<%s:%#0x>", self.class.to_s, self.object_id)
475
- end
435
+ sprintf(
436
+ "#<%s:%#0x DATA:%s>",
437
+ self.class.to_s, self.object_id, self.to_hash.inspect
438
+ )
476
439
  end
477
440
  end
478
441
 
@@ -18,7 +18,7 @@ unless defined? AutoParse::VERSION
18
18
  module VERSION
19
19
  MAJOR = 0
20
20
  MINOR = 2
21
- TINY = 1
21
+ TINY = 3
22
22
 
23
23
  STRING = [MAJOR, MINOR, TINY].join('.')
24
24
  end
@@ -77,7 +77,7 @@ describe AutoParse::Instance, 'with the geo schema' do
77
77
  :path => File.expand_path(File.join(spec_dir, './data/geo.json'))
78
78
  )
79
79
  @schema_data = JSON.parse(File.open(@uri.path, 'r') { |f| f.read })
80
- @parser = AutoParse.generate(@schema_data, @uri)
80
+ @parser = AutoParse.generate(@schema_data, :uri => @uri)
81
81
  end
82
82
 
83
83
  it 'should have the correct URI' do
@@ -156,7 +156,7 @@ describe AutoParse::Instance, 'with the address schema' do
156
156
  :path => File.expand_path(File.join(spec_dir, './data/address.json'))
157
157
  )
158
158
  @schema_data = JSON.parse(File.open(@uri.path, 'r') { |f| f.read })
159
- @parser = AutoParse.generate(@schema_data, @uri)
159
+ @parser = AutoParse.generate(@schema_data, :uri => @uri)
160
160
  end
161
161
 
162
162
  it 'should have the correct URI' do
@@ -271,7 +271,7 @@ describe AutoParse::Instance, 'with the person schema' do
271
271
  :path => File.expand_path(File.join(spec_dir, './data/person.json'))
272
272
  )
273
273
  @schema_data = JSON.parse(File.open(@uri.path, 'r') { |f| f.read })
274
- @parser = AutoParse.generate(@schema_data, @uri)
274
+ @parser = AutoParse.generate(@schema_data, :uri => @uri)
275
275
  end
276
276
 
277
277
  it 'should have the correct URI' do
@@ -375,7 +375,9 @@ describe AutoParse::Instance, 'with the adult schema' do
375
375
  )
376
376
  @person_schema_data =
377
377
  JSON.parse(File.open(@person_uri.path, 'r') { |f| f.read })
378
- @person_parser = AutoParse.generate(@person_schema_data, @person_uri)
378
+ @person_parser = AutoParse.generate(
379
+ @person_schema_data, :uri => @person_uri
380
+ )
379
381
 
380
382
  @adult_uri = Addressable::URI.new(
381
383
  :scheme => 'file',
@@ -384,7 +386,7 @@ describe AutoParse::Instance, 'with the adult schema' do
384
386
  )
385
387
  @adult_schema_data =
386
388
  JSON.parse(File.open(@adult_uri.path, 'r') { |f| f.read })
387
- @adult_parser = AutoParse.generate(@adult_schema_data, @adult_uri)
389
+ @adult_parser = AutoParse.generate(@adult_schema_data, :uri => @adult_uri)
388
390
  end
389
391
 
390
392
  it 'should have the correct URI' do
@@ -489,7 +491,9 @@ describe AutoParse::Instance, 'with the positive schema' do
489
491
  )
490
492
  @positive_schema_data =
491
493
  JSON.parse(File.open(@positive_uri.path, 'r') { |f| f.read })
492
- @positive_parser = AutoParse.generate(@positive_schema_data, @positive_uri)
494
+ @positive_parser = AutoParse.generate(
495
+ @positive_schema_data, :uri => @positive_uri
496
+ )
493
497
  end
494
498
 
495
499
  it 'should have the correct URI' do
@@ -518,7 +522,9 @@ describe AutoParse::Instance, 'with the account schema' do
518
522
  )
519
523
  @positive_schema_data =
520
524
  JSON.parse(File.open(@positive_uri.path, 'r') { |f| f.read })
521
- @positive_parser = AutoParse.generate(@positive_schema_data, @positive_uri)
525
+ @positive_parser = AutoParse.generate(
526
+ @positive_schema_data, :uri => @positive_uri
527
+ )
522
528
 
523
529
  @account_uri = Addressable::URI.new(
524
530
  :scheme => 'file',
@@ -527,7 +533,9 @@ describe AutoParse::Instance, 'with the account schema' do
527
533
  )
528
534
  @account_schema_data =
529
535
  JSON.parse(File.open(@account_uri.path, 'r') { |f| f.read })
530
- @account_parser = AutoParse.generate(@account_schema_data, @account_uri)
536
+ @account_parser = AutoParse.generate(
537
+ @account_schema_data, :uri => @account_uri
538
+ )
531
539
  end
532
540
 
533
541
  it 'should have the correct URI' do
@@ -624,7 +632,9 @@ describe AutoParse::Instance, 'with the card schema' do
624
632
  )
625
633
  @address_schema_data =
626
634
  JSON.parse(File.open(@address_uri.path, 'r') { |f| f.read })
627
- @address_parser = AutoParse.generate(@address_schema_data, @address_uri)
635
+ @address_parser = AutoParse.generate(
636
+ @address_schema_data, :uri => @address_uri
637
+ )
628
638
 
629
639
  @geo_uri = Addressable::URI.new(
630
640
  :scheme => 'file',
@@ -633,7 +643,7 @@ describe AutoParse::Instance, 'with the card schema' do
633
643
  )
634
644
  @geo_schema_data =
635
645
  JSON.parse(File.open(@geo_uri.path, 'r') { |f| f.read })
636
- @geo_parser = AutoParse.generate(@geo_schema_data, @geo_uri)
646
+ @geo_parser = AutoParse.generate(@geo_schema_data, :uri => @geo_uri)
637
647
 
638
648
  @card_uri = Addressable::URI.new(
639
649
  :scheme => 'file',
@@ -642,7 +652,7 @@ describe AutoParse::Instance, 'with the card schema' do
642
652
  )
643
653
  @card_schema_data =
644
654
  JSON.parse(File.open(@card_uri.path, 'r') { |f| f.read })
645
- @card_parser = AutoParse.generate(@card_schema_data, @card_uri)
655
+ @card_parser = AutoParse.generate(@card_schema_data, :uri => @card_uri)
646
656
  end
647
657
 
648
658
  it 'should have the correct URI' do
@@ -940,7 +950,7 @@ describe AutoParse::Instance, 'with the calendar schema' do
940
950
  )
941
951
  @geo_schema_data =
942
952
  JSON.parse(File.open(@geo_uri.path, 'r') { |f| f.read })
943
- @geo_parser = AutoParse.generate(@geo_schema_data, @geo_uri)
953
+ @geo_parser = AutoParse.generate(@geo_schema_data, :uri => @geo_uri)
944
954
 
945
955
  @calendar_uri = Addressable::URI.new(
946
956
  :scheme => 'file',
@@ -949,7 +959,9 @@ describe AutoParse::Instance, 'with the calendar schema' do
949
959
  )
950
960
  @calendar_schema_data =
951
961
  JSON.parse(File.open(@calendar_uri.path, 'r') { |f| f.read })
952
- @calendar_parser = AutoParse.generate(@calendar_schema_data, @calendar_uri)
962
+ @calendar_parser = AutoParse.generate(
963
+ @calendar_schema_data, :uri => @calendar_uri
964
+ )
953
965
  end
954
966
 
955
967
  it 'should have the correct URI' do
@@ -1118,7 +1130,7 @@ describe AutoParse::Instance, 'with the node schema' do
1118
1130
  :path => File.expand_path(File.join(spec_dir, './data/node.json'))
1119
1131
  )
1120
1132
  @schema_data = JSON.parse(File.open(@uri.path, 'r') { |f| f.read })
1121
- @parser = AutoParse.generate(@schema_data, @uri)
1133
+ @parser = AutoParse.generate(@schema_data, :uri => @uri)
1122
1134
  end
1123
1135
 
1124
1136
  it 'should have the correct URI' do
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoparse
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 2
9
- - 1
10
- version: 0.2.1
8
+ - 3
9
+ version: 0.2.3
11
10
  platform: ruby
12
11
  authors:
13
12
  - Bob Aman
@@ -15,7 +14,8 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-10-14 00:00:00 Z
17
+ date: 2011-10-21 00:00:00 +03:00
18
+ default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: addressable
@@ -25,7 +25,6 @@ dependencies:
25
25
  requirements:
26
26
  - - ~>
27
27
  - !ruby/object:Gem::Version
28
- hash: 3
29
28
  segments:
30
29
  - 2
31
30
  - 2
@@ -41,7 +40,6 @@ dependencies:
41
40
  requirements:
42
41
  - - ">="
43
42
  - !ruby/object:Gem::Version
44
- hash: 11
45
43
  segments:
46
44
  - 1
47
45
  - 4
@@ -57,7 +55,6 @@ dependencies:
57
55
  requirements:
58
56
  - - ">="
59
57
  - !ruby/object:Gem::Version
60
- hash: 37
61
58
  segments:
62
59
  - 0
63
60
  - 9
@@ -73,7 +70,6 @@ dependencies:
73
70
  requirements:
74
71
  - - ~>
75
72
  - !ruby/object:Gem::Version
76
- hash: 57
77
73
  segments:
78
74
  - 0
79
75
  - 8
@@ -89,7 +85,6 @@ dependencies:
89
85
  requirements:
90
86
  - - ~>
91
87
  - !ruby/object:Gem::Version
92
- hash: 23
93
88
  segments:
94
89
  - 2
95
90
  - 6
@@ -105,7 +100,6 @@ dependencies:
105
100
  requirements:
106
101
  - - ~>
107
102
  - !ruby/object:Gem::Version
108
- hash: 23
109
103
  segments:
110
104
  - 0
111
105
  - 3
@@ -121,7 +115,6 @@ dependencies:
121
115
  requirements:
122
116
  - - ~>
123
117
  - !ruby/object:Gem::Version
124
- hash: 23
125
118
  segments:
126
119
  - 1
127
120
  - 1
@@ -176,6 +169,7 @@ files:
176
169
  - LICENSE
177
170
  - Rakefile
178
171
  - README.md
172
+ has_rdoc: true
179
173
  homepage: http://autoparse.rubyforge.org/
180
174
  licenses: []
181
175
 
@@ -190,7 +184,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
190
184
  requirements:
191
185
  - - ">="
192
186
  - !ruby/object:Gem::Version
193
- hash: 3
194
187
  segments:
195
188
  - 0
196
189
  version: "0"
@@ -199,14 +192,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
192
  requirements:
200
193
  - - ">="
201
194
  - !ruby/object:Gem::Version
202
- hash: 3
203
195
  segments:
204
196
  - 0
205
197
  version: "0"
206
198
  requirements: []
207
199
 
208
200
  rubyforge_project: autoparse
209
- rubygems_version: 1.8.6
201
+ rubygems_version: 1.3.7
210
202
  signing_key:
211
203
  specification_version: 3
212
204
  summary: A parsing system based on JSON Schema.