yaml-ld 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/psych/amazing_print.rb +61 -0
- data/lib/yaml_ld/api.rb +69 -11
- data/lib/yaml_ld/format.rb +25 -0
- data/lib/yaml_ld/reader.rb +3 -1
- data/lib/yaml_ld/representation.rb +256 -0
- data/lib/yaml_ld/version.rb +1 -1
- data/lib/yaml_ld.rb +1 -0
- data/spec/api_spec.rb +21 -27
- data/spec/compact_spec.rb +1 -1
- data/spec/expand_spec.rb +1 -1
- data/spec/format_spec.rb +56 -0
- data/spec/frame_spec.rb +55 -110
- data/spec/from_rdf_spec.rb +3 -3
- data/spec/matchers.rb +2 -2
- data/spec/reader_spec.rb +1 -1
- data/spec/representation_spec.rb +170 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/test-files/test-1-compacted.yamlld +9 -0
- data/spec/test-files/test-1-context.yamlld +6 -0
- data/spec/test-files/test-1-expanded.yamlld +8 -0
- data/spec/test-files/test-1-input.yamlld +1 -0
- data/spec/test-files/test-2-compacted.yamlld +17 -0
- data/spec/test-files/test-2-context.yamlld +5 -0
- data/spec/test-files/test-2-expanded.yamlld +21 -0
- data/spec/test-files/test-3-compacted.yamlld +14 -0
- data/spec/test-files/test-3-context.yamlld +11 -0
- data/spec/test-files/test-3-expanded.yamlld +9 -0
- data/spec/test-files/test-4-compacted.yamlld +10 -0
- data/spec/test-files/test-4-context.yamlld +5 -0
- data/spec/test-files/test-4-expanded.yamlld +9 -0
- data/spec/test-files/test-5-compacted.yamlld +11 -0
- data/spec/test-files/test-5-context.yamlld +5 -0
- data/spec/test-files/test-5-expanded.yamlld +12 -0
- data/spec/test-files/test-6-compacted.yamlld +13 -0
- data/spec/test-files/test-6-context.yamlld +5 -0
- data/spec/test-files/test-6-expanded.yamlld +12 -0
- data/spec/test-files/test-7-compacted.yamlld +17 -0
- data/spec/test-files/test-7-context.yamlld +4 -0
- data/spec/test-files/test-7-expanded.yamlld +23 -0
- data/spec/test-files/test-8-compacted.yamlld +25 -0
- data/spec/test-files/test-8-context.yamlld +12 -0
- data/spec/test-files/test-8-expanded.yamlld +23 -0
- data/spec/test-files/test-8-frame.yamlld +15 -0
- data/spec/test-files/test-8-framed.yamlld +22 -0
- data/spec/test-files/test-9-compacted.yamlld +31 -0
- data/spec/test-files/test-9-context.yamlld +20 -0
- data/spec/test-files/test-9-expanded.yamlld +17 -0
- data/spec/to_rdf_spec.rb +10 -8
- metadata +89 -61
- data/spec/test-files/test-1-expanded.jsonld +0 -5
- data/spec/test-files/test-2-compacted.jsonld +0 -20
- data/spec/test-files/test-2-context.jsonld +0 -7
- data/spec/test-files/test-2-expanded.jsonld +0 -16
- data/spec/test-files/test-3-compacted.jsonld +0 -11
- data/spec/test-files/test-3-context.jsonld +0 -8
- data/spec/test-files/test-3-expanded.jsonld +0 -10
- data/spec/test-files/test-4-compacted.jsonld +0 -10
- data/spec/test-files/test-4-context.jsonld +0 -7
- data/spec/test-files/test-4-expanded.jsonld +0 -6
- data/spec/test-files/test-5-compacted.jsonld +0 -13
- data/spec/test-files/test-5-context.jsonld +0 -7
- data/spec/test-files/test-5-expanded.jsonld +0 -9
- data/spec/test-files/test-6-compacted.jsonld +0 -10
- data/spec/test-files/test-6-context.jsonld +0 -7
- data/spec/test-files/test-6-expanded.jsonld +0 -10
- data/spec/test-files/test-7-compacted.jsonld +0 -23
- data/spec/test-files/test-7-context.jsonld +0 -4
- data/spec/test-files/test-7-expanded.jsonld +0 -20
- data/spec/test-files/test-8-compacted.jsonld +0 -34
- data/spec/test-files/test-8-context.jsonld +0 -11
- data/spec/test-files/test-8-expanded.jsonld +0 -24
- data/spec/test-files/test-8-frame.jsonld +0 -18
- data/spec/test-files/test-8-framed.jsonld +0 -25
- data/spec/test-files/test-9-compacted.jsonld +0 -20
- data/spec/test-files/test-9-context.jsonld +0 -13
- data/spec/test-files/test-9-expanded.jsonld +0 -14
data/spec/api_spec.rb
CHANGED
@@ -10,12 +10,11 @@ describe YAML_LD::API do
|
|
10
10
|
%i(psych).each do |adapter|
|
11
11
|
Dir.glob(File.expand_path(File.join(File.dirname(__FILE__), 'test-files/*-input.*'))) do |filename|
|
12
12
|
test = File.basename(filename).sub(/-input\..*$/, '')
|
13
|
-
frame = filename.sub(/-input\..*$/, '-frame.
|
14
|
-
framed = filename.sub(/-input\..*$/, '-framed.
|
15
|
-
compacted = filename.sub(/-input\..*$/, '-compacted.
|
16
|
-
context = filename.sub(/-input\..*$/, '-context.
|
17
|
-
expanded = filename.sub(/-input\..*$/, '-expanded.
|
18
|
-
expanded_yaml = filename.sub(/-input\..*$/, '-expanded.yamlld')
|
13
|
+
frame = filename.sub(/-input\..*$/, '-frame.yamlld')
|
14
|
+
framed = filename.sub(/-input\..*$/, '-framed.yamlld')
|
15
|
+
compacted = filename.sub(/-input\..*$/, '-compacted.yamlld')
|
16
|
+
context = filename.sub(/-input\..*$/, '-context.yamlld')
|
17
|
+
expanded = filename.sub(/-input\..*$/, '-expanded.yamlld')
|
19
18
|
ttl = filename.sub(/-input\..*$/, '-rdf.ttl')
|
20
19
|
|
21
20
|
context test do
|
@@ -27,7 +26,7 @@ describe YAML_LD::API do
|
|
27
26
|
when /.jsonld$/
|
28
27
|
@file.define_singleton_method(:content_type) {'application/ld+json'}
|
29
28
|
end
|
30
|
-
if context
|
29
|
+
if File.exist?(context)
|
31
30
|
@ctx_io = File.open(context)
|
32
31
|
case context
|
33
32
|
when /\.yamlld$/
|
@@ -36,9 +35,19 @@ describe YAML_LD::API do
|
|
36
35
|
@ctx_io.define_singleton_method(:content_type) {'application/ld+json'}
|
37
36
|
end
|
38
37
|
end
|
38
|
+
if File.exist?(frame)
|
39
|
+
@frame_io = File.open(frame)
|
40
|
+
case frame
|
41
|
+
when /\.yamlld$/
|
42
|
+
@frame_io.define_singleton_method(:content_type) {'application/ld+yaml'}
|
43
|
+
when /.jsonld$/
|
44
|
+
@frame_io.define_singleton_method(:content_type) {'application/ld+json'}
|
45
|
+
end
|
46
|
+
end
|
39
47
|
example.run
|
40
48
|
@file.close
|
41
49
|
@ctx_io.close if @ctx_io
|
50
|
+
@frame_io.close if @frame_io
|
42
51
|
end
|
43
52
|
|
44
53
|
if File.exist?(expanded)
|
@@ -47,18 +56,7 @@ describe YAML_LD::API do
|
|
47
56
|
options[:expandContext] = @ctx_io if context
|
48
57
|
yaml = described_class.expand(@file, **options)
|
49
58
|
expect(yaml).to be_a(String)
|
50
|
-
|
51
|
-
expect(yaml).to produce_yamlld(parsed_json, logger)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
if File.exist?(expanded_yaml)
|
56
|
-
it "expands to YAML" do
|
57
|
-
options = {logger: logger, adapter: adapter}
|
58
|
-
options[:expandContext] = @ctx_io if context
|
59
|
-
yaml = described_class.expand(@file, **options)
|
60
|
-
expect(yaml).to be_a(String)
|
61
|
-
expect(yaml).to produce_yamlld(YAML.load_file(expanded_yaml), logger)
|
59
|
+
expect(yaml).to produce_yamlld(File.read(expanded), logger)
|
62
60
|
end
|
63
61
|
end
|
64
62
|
|
@@ -66,19 +64,15 @@ describe YAML_LD::API do
|
|
66
64
|
it "compacts" do
|
67
65
|
yaml = described_class.compact(@file, @ctx_io, adapter: adapter, logger: logger)
|
68
66
|
expect(yaml).to be_a(String)
|
69
|
-
|
70
|
-
expect(yaml).to produce_yamlld(parsed_json, logger)
|
67
|
+
expect(yaml).to produce_yamlld(File.read(compacted), logger)
|
71
68
|
end
|
72
69
|
end
|
73
70
|
|
74
71
|
if File.exist?(framed) && File.exist?(frame)
|
75
72
|
it "frames" do
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
parsed_json = JSON.parse(File.read(framed))
|
80
|
-
expect(yaml).to produce_yamlld(parsed_json, logger)
|
81
|
-
end
|
73
|
+
yaml = described_class.frame(@file, @frame_io, adapter: adapter, logger: logger)
|
74
|
+
expect(yaml).to be_a(String)
|
75
|
+
expect(yaml).to produce_yamlld(File.read(framed), logger)
|
82
76
|
end
|
83
77
|
end
|
84
78
|
|
data/spec/compact_spec.rb
CHANGED
data/spec/expand_spec.rb
CHANGED
data/spec/format_spec.rb
CHANGED
@@ -51,4 +51,60 @@ describe YAML_LD::Format do
|
|
51
51
|
describe "#to_uri" do
|
52
52
|
specify {expect(described_class.to_uri).to eq RDF::URI('http://www.w3.org/ns/formats/YAML-LD')}
|
53
53
|
end
|
54
|
+
|
55
|
+
describe ".cli_commands", skip: Gem.win_platform? do
|
56
|
+
require 'rdf/cli'
|
57
|
+
let(:ttl) {File.expand_path("../test-files/test-1-rdf.ttl", __FILE__)}
|
58
|
+
let(:yaml) {File.expand_path("../test-files/test-1-input.yamlld", __FILE__)}
|
59
|
+
let(:json) {File.expand_path("../test-files/test-1-compacted.jsonld", __FILE__)}
|
60
|
+
let(:context) {File.expand_path("../test-files/test-1-context.jsonld", __FILE__)}
|
61
|
+
|
62
|
+
describe "#expand" do
|
63
|
+
it "expands RDF" do
|
64
|
+
expect {RDF::CLI.exec(["expand", ttl], format: :ttl, output_format: :yamlld)}.to write.to(:output)
|
65
|
+
end
|
66
|
+
it "expands JSON" do
|
67
|
+
expect {RDF::CLI.exec(["expand", json], format: :jsonld, output_format: :yamlld, validate: false)}.to write.to(:output)
|
68
|
+
end
|
69
|
+
it "expands YAML" do
|
70
|
+
expect {RDF::CLI.exec(["expand", yaml], format: :yamlld, output_format: :yamlld, validate: false)}.to write.to(:output)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "#compact" do
|
75
|
+
it "compacts RDF" do
|
76
|
+
expect {RDF::CLI.exec(["compact", ttl], context: context, format: :ttl, output_format: :yamlld, validate: false)}.to write.to(:output)
|
77
|
+
end
|
78
|
+
it "compacts JSON" do
|
79
|
+
expect {RDF::CLI.exec(["compact", json], context: context, format: :jsonld, output_format: :yamlld, validate: false)}.to write.to(:output)
|
80
|
+
end
|
81
|
+
it "compacts YAML" do
|
82
|
+
expect {RDF::CLI.exec(["compact", yaml], context: context, format: :yamlld, output_format: :yamlld, validate: false)}.to write.to(:output)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
describe "#flatten" do
|
87
|
+
it "flattens RDF" do
|
88
|
+
expect {RDF::CLI.exec(["flatten", ttl], context: context, format: :ttl, output_format: :yamlld, validate: false)}.to write.to(:output)
|
89
|
+
end
|
90
|
+
it "flattens JSON" do
|
91
|
+
expect {RDF::CLI.exec(["flatten", json], context: context, format: :jsonld, output_format: :yamlld, validate: false)}.to write.to(:output)
|
92
|
+
end
|
93
|
+
it "flattens YAML" do
|
94
|
+
expect {RDF::CLI.exec(["flatten", yaml], context: context, format: :yamlld, output_format: :yamlld, validate: false)}.to write.to(:output)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
describe "#frame" do
|
99
|
+
it "frames RDF" do
|
100
|
+
expect {RDF::CLI.exec(["frame", ttl], frame: context, format: :ttl, output_format: :yamlld)}.to write.to(:output)
|
101
|
+
end
|
102
|
+
it "frames JSON" do
|
103
|
+
expect {RDF::CLI.exec(["frame", json], frame: context, format: :jsonld, output_format: :yamlld, validate: false)}.to write.to(:output)
|
104
|
+
end
|
105
|
+
it "frames YAML" do
|
106
|
+
expect {RDF::CLI.exec(["frame", yaml], frame: context, format: :yamlld, output_format: :yamlld, validate: false)}.to write.to(:output)
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
54
110
|
end
|
data/spec/frame_spec.rb
CHANGED
@@ -22,12 +22,11 @@ describe YAML_LD::API do
|
|
22
22
|
"@id": ex:Sub2
|
23
23
|
"@type": ex:Type2
|
24
24
|
),
|
25
|
-
output: %(
|
25
|
+
output: %(
|
26
26
|
"@context":
|
27
27
|
ex: http://example.org/
|
28
|
-
"@
|
29
|
-
|
30
|
-
"@type": ex:Type1
|
28
|
+
"@id": ex:Sub1
|
29
|
+
"@type": ex:Type1
|
31
30
|
)
|
32
31
|
},
|
33
32
|
"wildcard @type match": {
|
@@ -76,9 +75,8 @@ describe YAML_LD::API do
|
|
76
75
|
output: %(
|
77
76
|
"@context":
|
78
77
|
ex: http://example.org/
|
79
|
-
"@
|
80
|
-
|
81
|
-
ex:p: Bar
|
78
|
+
"@id": ex:Sub2
|
79
|
+
ex:p: Bar
|
82
80
|
)
|
83
81
|
},
|
84
82
|
"multiple matches on @type": {
|
@@ -136,9 +134,8 @@ describe YAML_LD::API do
|
|
136
134
|
output: %(
|
137
135
|
"@context":
|
138
136
|
ex: http://example.org/
|
139
|
-
"@
|
140
|
-
|
141
|
-
"@type": ex:Type1
|
137
|
+
"@id": ex:Sub1
|
138
|
+
"@type": ex:Type1
|
142
139
|
)
|
143
140
|
},
|
144
141
|
"multiple @id match": {
|
@@ -194,10 +191,9 @@ describe YAML_LD::API do
|
|
194
191
|
output: %(
|
195
192
|
"@context":
|
196
193
|
ex: http://example.org/
|
197
|
-
"@
|
198
|
-
|
199
|
-
|
200
|
-
ex:q: bar
|
194
|
+
"@id": ex:Sub1
|
195
|
+
ex:p:
|
196
|
+
ex:q: bar
|
201
197
|
)
|
202
198
|
},
|
203
199
|
"match on any property if @requireAll is false": {
|
@@ -308,8 +304,7 @@ describe YAML_LD::API do
|
|
308
304
|
familyName: Doe
|
309
305
|
givenName: John
|
310
306
|
name: John Doe
|
311
|
-
)
|
312
|
-
processingMode: 'json-ld-1.1'
|
307
|
+
)
|
313
308
|
},
|
314
309
|
"mixed content": {
|
315
310
|
frame: %(
|
@@ -329,11 +324,10 @@ describe YAML_LD::API do
|
|
329
324
|
output: %(
|
330
325
|
"@context":
|
331
326
|
ex: http://example.org/
|
332
|
-
"@
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
- literal1
|
327
|
+
"@id": ex:Sub1
|
328
|
+
ex:mixed:
|
329
|
+
- "@id": ex:Sub2
|
330
|
+
- literal1
|
337
331
|
)
|
338
332
|
},
|
339
333
|
"framed list": {
|
@@ -365,13 +359,12 @@ describe YAML_LD::API do
|
|
365
359
|
list:
|
366
360
|
"@id": ex:list
|
367
361
|
"@container": "@list"
|
368
|
-
"@
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
- literal1
|
362
|
+
"@id": ex:Sub1
|
363
|
+
"@type": ex:Type1
|
364
|
+
list:
|
365
|
+
- "@id": ex:Sub2
|
366
|
+
"@type": ex:Element
|
367
|
+
- literal1
|
375
368
|
)
|
376
369
|
},
|
377
370
|
"presentation example": {
|
@@ -410,12 +403,11 @@ describe YAML_LD::API do
|
|
410
403
|
sameAs:
|
411
404
|
"@id": http://www.w3.org/2002/07/owl#sameAs
|
412
405
|
"@type": "@id"
|
413
|
-
"@
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
sameAs: http://rdf.freebase.com/ns/m/02r2kb1
|
406
|
+
"@id": http://en.wikipedia.org/wiki/Linked_Data
|
407
|
+
primaryTopic:
|
408
|
+
"@id": http://dbpedia.org/resource/Linked_Data
|
409
|
+
"@type": http://dbpedia.org/class/yago/Buzzwords
|
410
|
+
sameAs: http://rdf.freebase.com/ns/m/02r2kb1
|
419
411
|
)
|
420
412
|
},
|
421
413
|
"library": {
|
@@ -455,20 +447,19 @@ describe YAML_LD::API do
|
|
455
447
|
xsd: http://www.w3.org/2001/XMLSchema#
|
456
448
|
ex:contains:
|
457
449
|
"@type": "@id"
|
458
|
-
"@
|
459
|
-
|
460
|
-
|
461
|
-
|
450
|
+
"@id": http://example.org/library
|
451
|
+
"@type": ex:Library
|
452
|
+
dc:name: Library
|
453
|
+
ex:contains:
|
454
|
+
"@id": http://example.org/library/the-republic
|
455
|
+
"@type": ex:Book
|
456
|
+
dc:creator: Plato
|
457
|
+
dc:title: The Republic
|
462
458
|
ex:contains:
|
463
|
-
"@id": http://example.org/library/the-republic
|
464
|
-
"@type": ex:
|
465
|
-
dc:
|
466
|
-
dc:title: The
|
467
|
-
ex:contains:
|
468
|
-
"@id": http://example.org/library/the-republic#introduction
|
469
|
-
"@type": ex:Chapter
|
470
|
-
dc:description: An introductory chapter on The Republic.
|
471
|
-
dc:title: The Introduction
|
459
|
+
"@id": http://example.org/library/the-republic#introduction
|
460
|
+
"@type": ex:Chapter
|
461
|
+
dc:description: An introductory chapter on The Republic.
|
462
|
+
dc:title: The Introduction
|
472
463
|
)
|
473
464
|
}
|
474
465
|
}.each do |title, params|
|
@@ -502,15 +493,14 @@ describe YAML_LD::API do
|
|
502
493
|
output: %(
|
503
494
|
"@context":
|
504
495
|
ex: http://example.org/
|
505
|
-
"@
|
506
|
-
|
507
|
-
|
508
|
-
|
496
|
+
"@id": ex:Sub1
|
497
|
+
"@type": ex:Type1
|
498
|
+
"@reverse":
|
499
|
+
ex:includes:
|
500
|
+
"@id": ex:Sub2
|
501
|
+
"@type": ex:Type2
|
509
502
|
ex:includes:
|
510
|
-
"@id": ex:
|
511
|
-
"@type": ex:Type2
|
512
|
-
ex:includes:
|
513
|
-
"@id": ex:Sub1
|
503
|
+
"@id": ex:Sub1
|
514
504
|
)
|
515
505
|
},
|
516
506
|
"embed matched frames with reversed property": {
|
@@ -539,14 +529,13 @@ describe YAML_LD::API do
|
|
539
529
|
ex: http://example.org/
|
540
530
|
excludes:
|
541
531
|
"@reverse": ex:includes
|
542
|
-
"@
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
ex:
|
549
|
-
"@id": ex:Sub1
|
532
|
+
"@id": ex:Sub1
|
533
|
+
"@type": ex:Type1
|
534
|
+
excludes:
|
535
|
+
"@id": ex:Sub2
|
536
|
+
"@type": ex:Type2
|
537
|
+
ex:includes:
|
538
|
+
"@id": ex:Sub1
|
550
539
|
)
|
551
540
|
},
|
552
541
|
}.each do |title, params|
|
@@ -558,27 +547,7 @@ describe YAML_LD::API do
|
|
558
547
|
|
559
548
|
context "omitGraph option" do
|
560
549
|
{
|
561
|
-
"Defaults to
|
562
|
-
input: %(
|
563
|
-
- http://example.org/prop:
|
564
|
-
- "@value": value
|
565
|
-
http://example.org/foo:
|
566
|
-
- "@value": bar
|
567
|
-
),
|
568
|
-
frame: %(
|
569
|
-
"@context":
|
570
|
-
"@vocab": http://example.org/
|
571
|
-
),
|
572
|
-
output: %(
|
573
|
-
"@context":
|
574
|
-
"@vocab": http://example.org/
|
575
|
-
"@graph":
|
576
|
-
- foo: bar
|
577
|
-
prop: value
|
578
|
-
),
|
579
|
-
processingMode: "json-ld-1.0"
|
580
|
-
},
|
581
|
-
"Set with option in 1.0": {
|
550
|
+
"Defaults to true": {
|
582
551
|
input: %(
|
583
552
|
- http://example.org/prop:
|
584
553
|
- "@value": value
|
@@ -594,30 +563,9 @@ describe YAML_LD::API do
|
|
594
563
|
"@vocab": http://example.org/
|
595
564
|
foo: bar
|
596
565
|
prop: value
|
597
|
-
)
|
598
|
-
processingMode: "json-ld-1.0",
|
599
|
-
omitGraph: true
|
600
|
-
},
|
601
|
-
"Defaults to true in 1.1": {
|
602
|
-
input: %(
|
603
|
-
- http://example.org/prop:
|
604
|
-
- "@value": value
|
605
|
-
http://example.org/foo:
|
606
|
-
- "@value": bar
|
607
|
-
),
|
608
|
-
frame: %(
|
609
|
-
"@context":
|
610
|
-
"@vocab": http://example.org/
|
611
|
-
),
|
612
|
-
output: %(
|
613
|
-
"@context":
|
614
|
-
"@vocab": http://example.org/
|
615
|
-
foo: bar
|
616
|
-
prop: value
|
617
|
-
),
|
618
|
-
processingMode: "json-ld-1.1"
|
566
|
+
)
|
619
567
|
},
|
620
|
-
"Set with option
|
568
|
+
"Set with option": {
|
621
569
|
input: %(
|
622
570
|
- http://example.org/prop:
|
623
571
|
- "@value": value
|
@@ -635,7 +583,6 @@ describe YAML_LD::API do
|
|
635
583
|
- foo: bar
|
636
584
|
prop: value
|
637
585
|
),
|
638
|
-
processingMode: "json-ld-1.1",
|
639
586
|
omitGraph: false
|
640
587
|
},
|
641
588
|
}.each do |title, params|
|
@@ -643,11 +590,9 @@ describe YAML_LD::API do
|
|
643
590
|
end
|
644
591
|
end
|
645
592
|
end
|
646
|
-
|
647
593
|
def do_frame(params)
|
648
594
|
begin
|
649
595
|
input, frame, output = params[:input], params[:frame], params[:output]
|
650
|
-
params = {processingMode: 'json-ld-1.0'}.merge(params)
|
651
596
|
input = StringIO.new(input) if input.is_a?(String)
|
652
597
|
frame = StringIO.new(frame) if frame.is_a?(String)
|
653
598
|
yld = nil
|
data/spec/from_rdf_spec.rb
CHANGED
@@ -296,7 +296,7 @@ describe YAML_LD::API do
|
|
296
296
|
},
|
297
297
|
}.each do |title, params|
|
298
298
|
params[:input] = RDF::Graph.new << RDF::Turtle::Reader.new(params[:input])
|
299
|
-
it(title) {do_fromRdf(
|
299
|
+
it(title) {do_fromRdf(**params)}
|
300
300
|
end
|
301
301
|
end
|
302
302
|
end
|
@@ -442,7 +442,7 @@ describe YAML_LD::API do
|
|
442
442
|
}
|
443
443
|
}.each_pair do |name, params|
|
444
444
|
it name do
|
445
|
-
do_fromRdf(params.merge(reader: RDF::Turtle::Reader, rdfDirection: 'i18n-datatype'
|
445
|
+
do_fromRdf(params.merge(reader: RDF::Turtle::Reader, rdfDirection: 'i18n-datatype'))
|
446
446
|
end
|
447
447
|
end
|
448
448
|
end
|
@@ -505,7 +505,7 @@ describe YAML_LD::API do
|
|
505
505
|
}
|
506
506
|
}.each_pair do |name, params|
|
507
507
|
it name do
|
508
|
-
do_fromRdf(params.merge(reader: RDF::Turtle::Reader, rdfDirection: 'compound-literal'
|
508
|
+
do_fromRdf(params.merge(reader: RDF::Turtle::Reader, rdfDirection: 'compound-literal'))
|
509
509
|
end
|
510
510
|
end
|
511
511
|
end
|
data/spec/matchers.rb
CHANGED
@@ -3,8 +3,8 @@ require_relative 'support/extensions'
|
|
3
3
|
|
4
4
|
RSpec::Matchers.define :produce_yamlld do |expected, logger|
|
5
5
|
match do |actual|
|
6
|
-
actual =
|
7
|
-
expected =
|
6
|
+
actual = YAML_LD::Representation.load(actual, aliases: true) if actual.is_a?(String)
|
7
|
+
expected = YAML_LD::Representation.load(expected, aliases: true) if expected.is_a?(String)
|
8
8
|
expect(actual).to be_equivalent_structure expected
|
9
9
|
end
|
10
10
|
|
data/spec/reader_spec.rb
CHANGED
@@ -0,0 +1,170 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require_relative 'spec_helper'
|
3
|
+
|
4
|
+
describe YAML_LD::Representation do
|
5
|
+
describe "load_stream" do
|
6
|
+
{
|
7
|
+
"Stream": {
|
8
|
+
input: %(
|
9
|
+
---
|
10
|
+
a
|
11
|
+
...
|
12
|
+
---
|
13
|
+
b
|
14
|
+
...
|
15
|
+
),
|
16
|
+
expected: %w(a b)
|
17
|
+
},
|
18
|
+
"String": {
|
19
|
+
input: %(a),
|
20
|
+
expected: %w(a)
|
21
|
+
},
|
22
|
+
}.each do |name, params|
|
23
|
+
it name do
|
24
|
+
input = params[:input]
|
25
|
+
ir = YAML_LD::Representation.load_stream(input.unindent.strip)
|
26
|
+
expected = params[:expected]
|
27
|
+
expect(ir).to be_equivalent_structure expected
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "load" do
|
33
|
+
{
|
34
|
+
"Stream": {
|
35
|
+
input: %(
|
36
|
+
---
|
37
|
+
a
|
38
|
+
...
|
39
|
+
---
|
40
|
+
b
|
41
|
+
...
|
42
|
+
),
|
43
|
+
expected: "a"
|
44
|
+
},
|
45
|
+
"Null": {
|
46
|
+
input: %(null),
|
47
|
+
expected: nil
|
48
|
+
},
|
49
|
+
"!!null null": {
|
50
|
+
input: %(!!null null),
|
51
|
+
expected: nil
|
52
|
+
},
|
53
|
+
"!<tag:yaml.org,2002:null> null": {
|
54
|
+
input: %(!<tag:yaml.org,2002:null> null),
|
55
|
+
expected: nil
|
56
|
+
},
|
57
|
+
"Boolean": {
|
58
|
+
input: %(true),
|
59
|
+
expected: true
|
60
|
+
},
|
61
|
+
"!!bool true": {
|
62
|
+
input: %(!!bool true),
|
63
|
+
expected: true
|
64
|
+
},
|
65
|
+
"!<tag:yaml.org,2002:bool> true": {
|
66
|
+
input: %(!<tag:yaml.org,2002:bool> true),
|
67
|
+
expected: true
|
68
|
+
},
|
69
|
+
"String": {
|
70
|
+
input: %(a),
|
71
|
+
expected: "a"
|
72
|
+
},
|
73
|
+
"Tagged !!str String": {
|
74
|
+
input: %(!!str string),
|
75
|
+
expected: "string"
|
76
|
+
},
|
77
|
+
"Tagged !<tag:yaml.org,2002:str> String": {
|
78
|
+
input: %(!<tag:yaml.org,2002:str> string),
|
79
|
+
expected: "string"
|
80
|
+
},
|
81
|
+
"Integer": {
|
82
|
+
input: %(1),
|
83
|
+
expected: 1
|
84
|
+
},
|
85
|
+
"Tagged !!int 1": {
|
86
|
+
input: %(!!int 1),
|
87
|
+
expected: 1
|
88
|
+
},
|
89
|
+
"Tagged !<tag:yaml.org,2002:int> 1": {
|
90
|
+
input: %(!<tag:yaml.org,2002:int> 1),
|
91
|
+
expected: 1
|
92
|
+
},
|
93
|
+
"Float": {
|
94
|
+
input: %(1.0),
|
95
|
+
expected: Float(1.0)
|
96
|
+
},
|
97
|
+
"Tagged !!float -1": {
|
98
|
+
input: %(!!float -1),
|
99
|
+
expected: Float(-1)
|
100
|
+
},
|
101
|
+
"Tagged !<tag:yaml.org,2002:float> 2.3e4": {
|
102
|
+
input: %(!<tag:yaml.org,2002:float> 2.3e4),
|
103
|
+
expected: Float(2.3e4)
|
104
|
+
},
|
105
|
+
"Tagged !<tag:yaml.org,2002:float> .inf": {
|
106
|
+
input: %(!<tag:yaml.org,2002:float> .inf),
|
107
|
+
expected: Float::INFINITY
|
108
|
+
},
|
109
|
+
}.each do |name, params|
|
110
|
+
it name do
|
111
|
+
input = params[:input]
|
112
|
+
ir = YAML_LD::Representation.load(input.unindent.strip)
|
113
|
+
expected = params[:expected]
|
114
|
+
expect(ir).to be_equivalent_structure expected
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
{
|
119
|
+
"!<http://www.w3.org/2001/XMLSchema%23integer> 123": {
|
120
|
+
input: %(!<http://www.w3.org/2001/XMLSchema%23integer> 123),
|
121
|
+
xsd: RDF::Literal("123", datatype: "http://www.w3.org/2001/XMLSchema#integer"),
|
122
|
+
plain: 123
|
123
|
+
},
|
124
|
+
"!<http://www.w3.org/2001/XMLSchema%23decimal> 123.456": {
|
125
|
+
input: %(!<http://www.w3.org/2001/XMLSchema%23decimal> 123.456),
|
126
|
+
xsd: RDF::Literal("123.456", datatype: "http://www.w3.org/2001/XMLSchema#decimal"),
|
127
|
+
plain: 123.456
|
128
|
+
},
|
129
|
+
"!<http://www.w3.org/2001/XMLSchema%23double> 123.456e78": {
|
130
|
+
input: %(!<http://www.w3.org/2001/XMLSchema%23double> 123.456e+78),
|
131
|
+
xsd: RDF::Literal("123.456e+78", datatype: "http://www.w3.org/2001/XMLSchema#double"),
|
132
|
+
plain: 123.456e+78
|
133
|
+
},
|
134
|
+
"!<http://www.w3.org/2001/XMLSchema%23boolean> true": {
|
135
|
+
input: %(!<http://www.w3.org/2001/XMLSchema%23boolean> true),
|
136
|
+
xsd: RDF::Literal("true", datatype: "http://www.w3.org/2001/XMLSchema#boolean"),
|
137
|
+
plain: true
|
138
|
+
},
|
139
|
+
"!<http://www.w3.org/2001/XMLSchema%23date> 2022-08-17": {
|
140
|
+
input: %(!<http://www.w3.org/2001/XMLSchema%23date> "2022-08-17"),
|
141
|
+
xsd: RDF::Literal("2022-08-17", datatype: "http://www.w3.org/2001/XMLSchema#date"),
|
142
|
+
plain: "2022-08-17"
|
143
|
+
},
|
144
|
+
"!<http://www.w3.org/2001/XMLSchema%23time> 12:00:00.000": {
|
145
|
+
input: %(!<http://www.w3.org/2001/XMLSchema%23time> "12:00:00.000"),
|
146
|
+
xsd: RDF::Literal("12:00:00.000", datatype: "http://www.w3.org/2001/XMLSchema#time"),
|
147
|
+
plain: "12:00:00.000"
|
148
|
+
},
|
149
|
+
"!<http://www.w3.org/2001/XMLSchema%23dateTime> 2022-08-17T12:00:00.000": {
|
150
|
+
input: %(!<http://www.w3.org/2001/XMLSchema%23dateTime> "2022-08-17T12:00:00.000"),
|
151
|
+
xsd: RDF::Literal("2022-08-17T12:00:00.000", datatype: "http://www.w3.org/2001/XMLSchema#dateTime"),
|
152
|
+
plain: "2022-08-17T12:00:00.000"
|
153
|
+
},
|
154
|
+
}.each do |name, params|
|
155
|
+
it "#{name} with xsd" do
|
156
|
+
input = params[:input]
|
157
|
+
ir = YAML_LD::Representation.load(input.unindent.strip, extendedYAML: true)
|
158
|
+
expected = params[:xsd]
|
159
|
+
expect(ir).to be_equivalent_structure expected
|
160
|
+
end
|
161
|
+
|
162
|
+
it "#{name} without xsd" do
|
163
|
+
input = params[:input]
|
164
|
+
ir = YAML_LD::Representation.load(input.unindent.strip, extendedYAML: false)
|
165
|
+
expected = params[:plain]
|
166
|
+
expect(ir).to be_equivalent_structure expected
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|