autoparse 0.2.1 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +10 -0
- data/lib/autoparse.rb +88 -78
- data/lib/autoparse/instance.rb +20 -57
- data/lib/autoparse/version.rb +1 -1
- data/spec/autoparse/instance_spec.rb +26 -14
- metadata +7 -15
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
|
data/lib/autoparse.rb
CHANGED
@@ -21,7 +21,9 @@ module AutoParse
|
|
21
21
|
@schemas ||= {}
|
22
22
|
end
|
23
23
|
|
24
|
-
def self.generate(schema_data,
|
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
|
-
|
61
|
-
|
62
|
-
|
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(
|
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
|
-
|
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
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
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
|
-
|
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
|
390
|
+
value, schema_class.data['type'], schema_class
|
339
391
|
)
|
340
|
-
|
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
|
397
|
+
value, schema_class.data['type'], schema_class
|
365
398
|
)
|
366
|
-
|
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,
|
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
|
-
|
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
|
data/lib/autoparse/instance.rb
CHANGED
@@ -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
|
-
|
33
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
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
|
|
data/lib/autoparse/version.rb
CHANGED
@@ -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(
|
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(
|
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(
|
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(
|
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(
|
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(
|
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
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
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-
|
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.
|
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.
|