earl-report 0.5.3 → 0.6.1
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/bin/earl-report +4 -2
- data/lib/earl_report.rb +64 -54
- data/spec/earl_report_spec.rb +102 -14
- data/spec/spec_helper.rb +14 -8
- data/spec/test-files/report-no-test.ttl +48 -0
- data/spec/test-files/results.html +11 -11
- data/spec/test-files/results.jsonld +82 -82
- data/spec/test-files/results.ttl +20 -20
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77b18a547a9e1721a2c32e83abc8230dfb5c8a4a7170874cda1b4cf41d50d4d8
|
4
|
+
data.tar.gz: 04654044c3dfca443518097550ef07bd68b74203ca9dfc239a49c1a62a5c7556
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 743c19a11e2b87f8819d841df0d37b9a6693b8eac15546d87e025d2c14f3464604cacc78adadc6d08103326070975334cb77e50a7da7b1824baf1babc4dbd33f
|
7
|
+
data.tar.gz: 23524a7e72dfd286504c422b05defa55e1ae00343a348926180d5d252a3ca041bc6a948cd929eca6e4183bdc2f8c1a0ff3b39861c34417ead1360bce7cd77525
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.6.1
|
data/bin/earl-report
CHANGED
@@ -15,6 +15,7 @@ OPT_ARGS = [
|
|
15
15
|
["--output", "-o", GetoptLong::REQUIRED_ARGUMENT,"Output report to file"],
|
16
16
|
["--query", GetoptLong::REQUIRED_ARGUMENT,"Query, or file containing query for extracting information from Test manifest"],
|
17
17
|
["--rc", GetoptLong::NO_ARGUMENT, "Write options to run-control file"],
|
18
|
+
["--strict", GetoptLong::NO_ARGUMENT, "Fails if any skipped result is found"],
|
18
19
|
["--template", GetoptLong::OPTIONAL_ARGUMENT,"Specify or return default report template"],
|
19
20
|
["--verbose", GetoptLong::NO_ARGUMENT, "Detail on execution"],
|
20
21
|
["--help", "-?", GetoptLong::NO_ARGUMENT, "This message"]
|
@@ -65,6 +66,7 @@ opts.each do |opt, arg|
|
|
65
66
|
when '--name' then options[:name] = arg
|
66
67
|
when '--output' then options[:io] = File.open(arg, "w")
|
67
68
|
when '--rc' then options[:rc] = true
|
69
|
+
when '--strict' then options[:strict] = true
|
68
70
|
when '--template' then options[:template] = (File.open(arg, "r") unless arg.empty?)
|
69
71
|
when '--verbose' then options[:verbose] = true
|
70
72
|
when '--help' then usage
|
@@ -94,6 +96,6 @@ if options.has_key?(:template) && options[:template].nil?
|
|
94
96
|
elsif ARGV.empty?
|
95
97
|
usage
|
96
98
|
else
|
97
|
-
earl = EarlReport.new(*ARGV, options)
|
98
|
-
earl.generate(options)
|
99
|
+
earl = EarlReport.new(*ARGV, **options)
|
100
|
+
earl.generate(**options)
|
99
101
|
end
|
data/lib/earl_report.rb
CHANGED
@@ -11,6 +11,7 @@ class EarlReport
|
|
11
11
|
autoload :VERSION, 'earl_report/version'
|
12
12
|
|
13
13
|
attr_reader :graph
|
14
|
+
attr_reader :verbose
|
14
15
|
|
15
16
|
# Return information about each test.
|
16
17
|
# Tests all have an mf:action property.
|
@@ -186,29 +187,37 @@ class EarlReport
|
|
186
187
|
|
187
188
|
##
|
188
189
|
# Load test assertions and look for referenced software and developer information
|
189
|
-
#
|
190
|
-
#
|
191
|
-
# @
|
192
|
-
#
|
193
|
-
#
|
194
|
-
#
|
195
|
-
#
|
196
|
-
#
|
197
|
-
#
|
198
|
-
#
|
199
|
-
#
|
200
|
-
#
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
190
|
+
#
|
191
|
+
# @param [Array<String>] files Assertions
|
192
|
+
# @param [String] base (nil) Base IRI for loading Manifest
|
193
|
+
# @param [String] bibRef ('Unknown reference')
|
194
|
+
# ReSpec bibliography reference for specification being tested
|
195
|
+
# @param [Boolean] json (false) File is in the JSON format of a report.
|
196
|
+
# @param [String, Array<String>] manifest (nil) Test manifest(s)
|
197
|
+
# @param [String] name ('Unknown') Name of specification
|
198
|
+
# @param [String] query (MANIFEST_QUERY)
|
199
|
+
# Query, or file containing query for extracting information from Test manifests
|
200
|
+
# @param [Boolean] strict (false) Abort on any warning
|
201
|
+
# @param [Boolean] verbose (false)
|
202
|
+
def initialize(*files,
|
203
|
+
base: nil,
|
204
|
+
bibRef: 'Unknown reference',
|
205
|
+
json: false,
|
206
|
+
manifest: nil,
|
207
|
+
name: 'Unknown',
|
208
|
+
query: MANIFEST_QUERY,
|
209
|
+
strict: false,
|
210
|
+
verbose: false,
|
211
|
+
**options)
|
212
|
+
@verbose = verbose
|
213
|
+
raise "Test Manifests must be specified with :manifest option" unless manifest || json
|
206
214
|
raise "Require at least one input file" if files.empty?
|
207
215
|
@files = files
|
208
216
|
@prefixes = {}
|
217
|
+
@warnings = 0
|
209
218
|
|
210
|
-
# If provided
|
211
|
-
if
|
219
|
+
# If provided json, it is used for generating all other output forms
|
220
|
+
if json
|
212
221
|
@json_hash = ::JSON.parse(File.read(files.first))
|
213
222
|
# Add a base_uri so relative subjects aren't dropped
|
214
223
|
JSON::LD::Reader.open(files.first, base_uri: "http://example.org/report") do |r|
|
@@ -223,25 +232,25 @@ class EarlReport
|
|
223
232
|
end
|
224
233
|
|
225
234
|
# Load manifests, possibly with base URI
|
226
|
-
status "read #{
|
235
|
+
status "read #{manifest.inspect}"
|
227
236
|
man_opts = {}
|
228
|
-
man_opts[:base_uri] = RDF::URI(
|
237
|
+
man_opts[:base_uri] = RDF::URI(base) if base
|
229
238
|
@graph = RDF::Graph.new
|
230
|
-
Array(
|
239
|
+
Array(manifest).each do |man|
|
231
240
|
g = RDF::Graph.load(man, unique_bnodes: true, **man_opts)
|
232
241
|
status " loaded #{g.count} triples from #{man}"
|
233
242
|
graph << g
|
234
243
|
end
|
235
244
|
|
236
245
|
# Hash test cases by URI
|
237
|
-
tests = SPARQL.execute(
|
246
|
+
tests = SPARQL.execute(query, graph)
|
238
247
|
.to_a
|
239
248
|
.inject({}) {|memo, soln| memo[soln[:uri]] = soln; memo}
|
240
249
|
|
241
250
|
if tests.empty?
|
242
251
|
raise "no tests found querying manifest.\n" +
|
243
252
|
"Results are found using the following query, this can be overridden using the --query option:\n" +
|
244
|
-
"#{
|
253
|
+
"#{query}"
|
245
254
|
end
|
246
255
|
|
247
256
|
# Manifests in graph
|
@@ -262,7 +271,7 @@ class EarlReport
|
|
262
271
|
status "read #{file}"
|
263
272
|
file_graph = RDF::Graph.load(file)
|
264
273
|
if file_graph.first_object(predicate: RDF::URI('http://www.w3.org/ns/earl#testSubjects'))
|
265
|
-
|
274
|
+
warn " skip #{file}, which seems to be a previous rollup earl report"
|
266
275
|
@files -= [file]
|
267
276
|
else
|
268
277
|
status " loaded #{file_graph.count} triples"
|
@@ -314,7 +323,7 @@ class EarlReport
|
|
314
323
|
subjects[solution[:uri]] = RDF::URI(file)
|
315
324
|
|
316
325
|
# Add TestSubject information to main graph
|
317
|
-
|
326
|
+
doapName = solution[:name].to_s if solution[:name]
|
318
327
|
language = solution[:language].to_s if solution[:language]
|
319
328
|
doapDesc = solution[:doapDesc] if solution[:doapDesc]
|
320
329
|
doapDesc.language ||= :en if doapDesc
|
@@ -322,7 +331,7 @@ class EarlReport
|
|
322
331
|
graph << RDF::Statement(solution[:uri], RDF.type, RDF::Vocab::DOAP.Project)
|
323
332
|
graph << RDF::Statement(solution[:uri], RDF.type, EARL.TestSubject)
|
324
333
|
graph << RDF::Statement(solution[:uri], RDF.type, EARL.Software)
|
325
|
-
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.name,
|
334
|
+
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.name, doapName)
|
326
335
|
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.developer, solution[:developer])
|
327
336
|
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.homepage, solution[:homepage]) if solution[:homepage]
|
328
337
|
graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.description, doapDesc) if doapDesc
|
@@ -350,12 +359,12 @@ class EarlReport
|
|
350
359
|
subject = solution[:subject]
|
351
360
|
unless tests[solution[:test]]
|
352
361
|
assertion_stats["Skipped"] = assertion_stats["Skipped"].to_i + 1
|
353
|
-
|
362
|
+
warn "Skipping result for #{solution[:test]} for #{subject}, which is not defined in manifests"
|
354
363
|
next
|
355
364
|
end
|
356
365
|
unless subjects[subject]
|
357
366
|
assertion_stats["Missing Subject"] = assertion_stats["Missing Subject"].to_i + 1
|
358
|
-
|
367
|
+
warn "No test result subject found for #{subject}: in #{subjects.keys.join(', ')}"
|
359
368
|
next
|
360
369
|
end
|
361
370
|
found_solutions ||= true
|
@@ -378,7 +387,7 @@ class EarlReport
|
|
378
387
|
end
|
379
388
|
|
380
389
|
# See if subject did not report results, which may indicate a formatting error in the EARL source
|
381
|
-
|
390
|
+
warn "No results found for #{subject} using #{ASSERTION_QUERY}" unless found_solutions
|
382
391
|
end
|
383
392
|
end
|
384
393
|
|
@@ -409,8 +418,8 @@ class EarlReport
|
|
409
418
|
# Add report wrapper to graph
|
410
419
|
ttl = TURTLE_PREFIXES + %(
|
411
420
|
<> a earl:Software, doap:Project;
|
412
|
-
doap:name #{quoted(
|
413
|
-
dc:bibliographicCitation "#{
|
421
|
+
doap:name #{quoted(name)};
|
422
|
+
dc:bibliographicCitation "#{bibRef}";
|
414
423
|
earl:generatedBy <https://rubygems.org/gems/earl-report>;
|
415
424
|
earl:assertions #{subjects.values.map {|f| f.to_ntriples}.join(",\n ")};
|
416
425
|
earl:testSubjects #{subjects.keys.map {|f| f.to_ntriples}.join(",\n ")};
|
@@ -434,6 +443,8 @@ class EarlReport
|
|
434
443
|
graph << RDF::Statement.new(u, RDF.type, EARL.TestCriterion)
|
435
444
|
graph << RDF::Statement.new(u, RDF.type, EARL.TestCase)
|
436
445
|
end
|
446
|
+
|
447
|
+
raise "Warnings issued in strict mode" if strict && @warnings > 0
|
437
448
|
end
|
438
449
|
|
439
450
|
##
|
@@ -441,48 +452,47 @@ class EarlReport
|
|
441
452
|
#
|
442
453
|
# If no `io` option is provided, the output is returned as a string
|
443
454
|
#
|
455
|
+
# @param [Symbol] format (:html)
|
456
|
+
# @param [IO] io (nil)
|
457
|
+
# `IO` to output results
|
444
458
|
# @param [Hash{Symbol => Object}] options
|
445
|
-
# @
|
446
|
-
#
|
447
|
-
# Optional `IO` to output results
|
459
|
+
# @param [String] template
|
460
|
+
# HAML template for generating report
|
448
461
|
# @return [String] serialized graph, if `io` is nil
|
449
|
-
def generate(
|
450
|
-
options = {format: :html}.merge(options)
|
462
|
+
def generate(format: :html, io: nil, template: nil, **options)
|
451
463
|
|
452
|
-
|
453
|
-
|
454
|
-
status("generate: #{options[:format]}")
|
464
|
+
status("generate: #{format}")
|
455
465
|
##
|
456
466
|
# Retrieve Hashed information in JSON-LD format
|
457
|
-
case
|
467
|
+
case format
|
458
468
|
when :jsonld, :json
|
459
469
|
json = json_hash.to_json(JSON::LD::JSON_STATE)
|
460
470
|
io.write(json) if io
|
461
471
|
json
|
462
472
|
when :turtle, :ttl
|
463
473
|
if io
|
464
|
-
earl_turtle(
|
474
|
+
earl_turtle(io: io)
|
465
475
|
else
|
466
476
|
io = StringIO.new
|
467
|
-
earl_turtle(
|
477
|
+
earl_turtle(io: io)
|
468
478
|
io.rewind
|
469
479
|
io.read
|
470
480
|
end
|
471
481
|
when :html
|
472
|
-
|
473
|
-
when String then
|
474
|
-
when IO, StringIO then
|
482
|
+
haml = case template
|
483
|
+
when String then template
|
484
|
+
when IO, StringIO then template.read
|
475
485
|
else
|
476
486
|
File.read(File.expand_path('../earl_report/views/earl_report.html.haml', __FILE__))
|
477
487
|
end
|
478
488
|
|
479
489
|
# Generate HTML report
|
480
|
-
html = Haml::Engine.new(
|
490
|
+
html = Haml::Engine.new(haml, format: :xhtml).render(self, tests: json_hash)
|
481
491
|
io.write(html) if io
|
482
492
|
html
|
483
493
|
else
|
484
|
-
writer = RDF::Writer.for(
|
485
|
-
writer.dump(@graph, io,
|
494
|
+
writer = RDF::Writer.for(format)
|
495
|
+
writer.dump(@graph, io, standard_prefixes: true, **options)
|
486
496
|
end
|
487
497
|
end
|
488
498
|
|
@@ -519,12 +529,11 @@ class EarlReport
|
|
519
529
|
|
520
530
|
##
|
521
531
|
# Output consoloated EARL report as Turtle
|
522
|
-
# @param [
|
523
|
-
#
|
532
|
+
# @param [IO] io ($stdout)
|
533
|
+
# `IO` to output results
|
524
534
|
# @return [String]
|
525
|
-
def earl_turtle(
|
535
|
+
def earl_turtle(io: $stdout)
|
526
536
|
context = JSON::LD::Context.parse(json_hash['@context'])
|
527
|
-
io = options[:io]
|
528
537
|
io.write(TURTLE_PREFIXES + "\n")
|
529
538
|
|
530
539
|
# Write project header
|
@@ -628,10 +637,11 @@ class EarlReport
|
|
628
637
|
end
|
629
638
|
|
630
639
|
def warn(message)
|
640
|
+
@warnings += 1
|
631
641
|
$stderr.puts message
|
632
642
|
end
|
633
643
|
|
634
644
|
def status(message)
|
635
|
-
$stderr.puts message if
|
645
|
+
$stderr.puts message if verbose
|
636
646
|
end
|
637
647
|
end
|
data/spec/earl_report_spec.rb
CHANGED
@@ -6,10 +6,10 @@ describe EarlReport do
|
|
6
6
|
let!(:earl) {
|
7
7
|
EarlReport.new(
|
8
8
|
File.expand_path("../test-files/report-complete.ttl", __FILE__),
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
9
|
+
bibRef: "[[TURTLE]]",
|
10
|
+
name: "Turtle Test Results",
|
11
|
+
verbose: false,
|
12
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
13
13
|
}
|
14
14
|
subject {earl}
|
15
15
|
|
@@ -26,6 +26,9 @@ describe EarlReport do
|
|
26
26
|
let(:reportNoFoaf) {
|
27
27
|
RDF::Graph.new << RDF::Turtle::Reader.new(File.open File.expand_path("../test-files/report-no-foaf.ttl", __FILE__))
|
28
28
|
}
|
29
|
+
let(:reportNoTest) {
|
30
|
+
RDF::Graph.new << RDF::Turtle::Reader.new(File.open File.expand_path("../test-files/report-no-test.ttl", __FILE__))
|
31
|
+
}
|
29
32
|
let(:doap) {
|
30
33
|
RDF::Graph.new << RDF::Turtle::Reader.new(File.open File.expand_path("../test-files/doap.ttl", __FILE__))
|
31
34
|
}
|
@@ -47,9 +50,9 @@ describe EarlReport do
|
|
47
50
|
.and_return(reportComplete)
|
48
51
|
EarlReport.new(
|
49
52
|
File.expand_path("../test-files/report-complete.ttl", __FILE__),
|
50
|
-
:
|
51
|
-
:
|
52
|
-
:
|
53
|
+
verbose: false,
|
54
|
+
base: "http://example.com/base/",
|
55
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
53
56
|
end
|
54
57
|
end
|
55
58
|
|
@@ -66,8 +69,8 @@ describe EarlReport do
|
|
66
69
|
subject {
|
67
70
|
EarlReport.new(
|
68
71
|
File.expand_path("../test-files/report-complete.ttl", __FILE__),
|
69
|
-
:
|
70
|
-
:
|
72
|
+
verbose: false,
|
73
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
71
74
|
}
|
72
75
|
it "loads manifest" do
|
73
76
|
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl"))
|
@@ -85,6 +88,18 @@ describe EarlReport do
|
|
85
88
|
it "loads foaf" do
|
86
89
|
expect(subject.graph.objects.to_a).to include(RDF::Vocab::FOAF.Person)
|
87
90
|
end
|
91
|
+
|
92
|
+
it "does not raise an error if the strict option is used" do
|
93
|
+
expect do
|
94
|
+
expect do
|
95
|
+
EarlReport.new(
|
96
|
+
File.expand_path("../test-files/report-complete.ttl", __FILE__),
|
97
|
+
verbose: false,
|
98
|
+
strict: true,
|
99
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
100
|
+
end.not_to raise_error
|
101
|
+
end.not_to output.to_stderr
|
102
|
+
end
|
88
103
|
end
|
89
104
|
|
90
105
|
context "no doap report" do
|
@@ -103,8 +118,8 @@ describe EarlReport do
|
|
103
118
|
subject {
|
104
119
|
EarlReport.new(
|
105
120
|
File.expand_path("../test-files/report-no-doap.ttl", __FILE__),
|
106
|
-
:
|
107
|
-
:
|
121
|
+
verbose: false,
|
122
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
108
123
|
}
|
109
124
|
it "loads manifest" do
|
110
125
|
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl"))
|
@@ -122,6 +137,18 @@ describe EarlReport do
|
|
122
137
|
it "loads foaf" do
|
123
138
|
expect(subject.graph.objects.to_a).to include(RDF::Vocab::FOAF.Person)
|
124
139
|
end
|
140
|
+
|
141
|
+
it "does not raise an error if the strict option is used" do
|
142
|
+
expect do
|
143
|
+
expect do
|
144
|
+
EarlReport.new(
|
145
|
+
File.expand_path("../test-files/report-no-doap.ttl", __FILE__),
|
146
|
+
verbose: false,
|
147
|
+
strict: true,
|
148
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
149
|
+
end.not_to raise_error
|
150
|
+
end.not_to output.to_stderr
|
151
|
+
end
|
125
152
|
end
|
126
153
|
|
127
154
|
context "no foaf report" do
|
@@ -140,8 +167,8 @@ describe EarlReport do
|
|
140
167
|
subject {
|
141
168
|
EarlReport.new(
|
142
169
|
File.expand_path("../test-files/report-no-foaf.ttl", __FILE__),
|
143
|
-
:
|
144
|
-
:
|
170
|
+
verbose: false,
|
171
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
145
172
|
}
|
146
173
|
it "loads manifest" do
|
147
174
|
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl"))
|
@@ -159,6 +186,67 @@ describe EarlReport do
|
|
159
186
|
it "loads foaf" do
|
160
187
|
expect(subject.graph.objects.to_a).to include(RDF::Vocab::FOAF.Person)
|
161
188
|
end
|
189
|
+
|
190
|
+
it "does not raise an error if the strict option is used" do
|
191
|
+
expect do
|
192
|
+
expect do
|
193
|
+
EarlReport.new(
|
194
|
+
File.expand_path("../test-files/report-no-foaf.ttl", __FILE__),
|
195
|
+
verbose: false,
|
196
|
+
strict: true,
|
197
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
198
|
+
end.not_to raise_error
|
199
|
+
end.not_to output.to_stderr
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
context "asserts a test not in manifest" do
|
204
|
+
before(:each) do
|
205
|
+
expect(RDF::Graph).to receive(:load)
|
206
|
+
.with(File.expand_path("../test-files/manifest.ttl", __FILE__), {unique_bnodes: true, })
|
207
|
+
.and_return(manifest)
|
208
|
+
expect(RDF::Graph).to receive(:load)
|
209
|
+
.with(File.expand_path("../test-files/report-no-test.ttl", __FILE__))
|
210
|
+
.and_return(reportNoTest)
|
211
|
+
end
|
212
|
+
|
213
|
+
subject {
|
214
|
+
expect do
|
215
|
+
@no_test_earl = EarlReport.new(
|
216
|
+
File.expand_path("../test-files/report-no-test.ttl", __FILE__),
|
217
|
+
verbose: false,
|
218
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
219
|
+
end.to output.to_stderr
|
220
|
+
@no_test_earl
|
221
|
+
}
|
222
|
+
it "loads manifest" do
|
223
|
+
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl"))
|
224
|
+
expect(subject.graph.subjects.to_a).to include(RDF::URI("http://example/manifest.ttl#testeval00"))
|
225
|
+
end
|
226
|
+
|
227
|
+
it "loads report" do
|
228
|
+
expect(subject.graph.predicates.to_a).to include(RDF::URI("http://www.w3.org/ns/earl#generatedBy"))
|
229
|
+
end
|
230
|
+
|
231
|
+
it "loads doap" do
|
232
|
+
expect(subject.graph.subjects.to_a).to include(RDF::URI("https://rubygems.org/gems/rdf-turtle"))
|
233
|
+
end
|
234
|
+
|
235
|
+
it "loads foaf" do
|
236
|
+
expect(subject.graph.objects.to_a).to include(RDF::Vocab::FOAF.Person)
|
237
|
+
end
|
238
|
+
|
239
|
+
it "raises an error if the strict option is used" do
|
240
|
+
expect do
|
241
|
+
expect do
|
242
|
+
EarlReport.new(
|
243
|
+
File.expand_path("../test-files/report-no-test.ttl", __FILE__),
|
244
|
+
verbose: false,
|
245
|
+
strict: true,
|
246
|
+
manifest: File.expand_path("../test-files/manifest.ttl", __FILE__))
|
247
|
+
end.to raise_error(RuntimeError)
|
248
|
+
end.to output.to_stderr
|
249
|
+
end
|
162
250
|
end
|
163
251
|
end
|
164
252
|
|
@@ -227,7 +315,7 @@ describe EarlReport do
|
|
227
315
|
let(:output) {
|
228
316
|
@output ||= begin
|
229
317
|
sio = StringIO.new
|
230
|
-
earl.send(:earl_turtle,
|
318
|
+
earl.send(:earl_turtle, io: sio)
|
231
319
|
sio.rewind
|
232
320
|
sio.read
|
233
321
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,16 +4,22 @@ $:.unshift File.dirname(__FILE__)
|
|
4
4
|
require "bundler/setup"
|
5
5
|
require 'rspec'
|
6
6
|
require 'rspec/its'
|
7
|
-
require 'simplecov'
|
8
|
-
require 'coveralls'
|
9
7
|
require 'amazing_print'
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
SimpleCov.
|
15
|
-
|
8
|
+
|
9
|
+
begin
|
10
|
+
require 'simplecov'
|
11
|
+
require 'coveralls'
|
12
|
+
SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
|
13
|
+
SimpleCov::Formatter::HTMLFormatter,
|
14
|
+
Coveralls::SimpleCov::Formatter
|
15
|
+
])
|
16
|
+
SimpleCov.start do
|
17
|
+
add_filter "/spec/"
|
18
|
+
end
|
19
|
+
rescue LoadError => e
|
20
|
+
STDERR.puts "Coverage Skipped: #{e.message}"
|
16
21
|
end
|
22
|
+
|
17
23
|
require 'earl_report'
|
18
24
|
|
19
25
|
JSON_STATE = JSON::State.new(
|
@@ -0,0 +1,48 @@
|
|
1
|
+
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
2
|
+
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
3
|
+
@prefix dc: <http://purl.org/dc/terms/> .
|
4
|
+
@prefix earl: <http://www.w3.org/ns/earl#> .
|
5
|
+
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
|
6
|
+
@prefix doap: <http://usefulinc.com/ns/doap#> .
|
7
|
+
@prefix ex: <http://example.org/> .
|
8
|
+
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
9
|
+
|
10
|
+
<https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
|
11
|
+
doap:name "RDF::Turtle" ;
|
12
|
+
doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
|
13
|
+
doap:license <http://creativecommons.org/publicdomain/zero/1.0/> ;
|
14
|
+
doap:shortdesc "Turtle reader/writer for Ruby."@en ;
|
15
|
+
doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
|
16
|
+
doap:created "2011-08-29"^^xsd:date;
|
17
|
+
doap:programming-language "Ruby" ;
|
18
|
+
doap:implements <http://www.w3.org/TR/turtle/> ;
|
19
|
+
doap:category <http://dbpedia.org/resource/Resource_Description_Framework>,
|
20
|
+
<http://dbpedia.org/resource/Ruby_(programming_language)> ;
|
21
|
+
doap:download-page <https://rubygems.org/gems/rdf-turtle> ;
|
22
|
+
doap:mailing-list <http://lists.w3.org/Archives/Public/public-rdf-ruby/> ;
|
23
|
+
doap:bug-database <https://github.com/ruby-rdf/rdf-turtle/issues> ;
|
24
|
+
doap:blog <https://greggkellogg.net/> ;
|
25
|
+
doap:developer <https://greggkellogg.net/foaf#me> ;
|
26
|
+
doap:maintainer <https://greggkellogg.net/foaf#me> ;
|
27
|
+
doap:documenter <https://greggkellogg.net/foaf#me> ;
|
28
|
+
foaf:maker <https://greggkellogg.net/foaf#me> ;
|
29
|
+
dc:title "RDF::Turtle" ;
|
30
|
+
dc:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
|
31
|
+
dc:date "2011-08-29"^^xsd:date;
|
32
|
+
dc:creator <https://greggkellogg.net/foaf#me>;
|
33
|
+
dc:isPartOf <https://rubygems.org/gems/rdf> .
|
34
|
+
|
35
|
+
<https://greggkellogg.net/foaf#me> a foaf:Person, earl:Assertor;
|
36
|
+
foaf:name "Gregg Kellogg";
|
37
|
+
foaf:title "Implementor";
|
38
|
+
foaf:homepage <https://greggkellogg.net/> .
|
39
|
+
|
40
|
+
[ a earl:Assertion;
|
41
|
+
earl:assertedBy <https://greggkellogg.net/foaf#me>;
|
42
|
+
earl:subject <https://rubygems.org/gems/rdf-turtle>;
|
43
|
+
earl:test <http://example/manifest.ttl#notest>;
|
44
|
+
earl:result [
|
45
|
+
a earl:TestResult;
|
46
|
+
earl:outcome earl:passed;
|
47
|
+
dc:date "2012-11-06T19:23:29-08:00"^^xsd:dateTime];
|
48
|
+
earl:mode earl:automatic ] .
|
@@ -73,8 +73,8 @@ Implementation Report
|
|
73
73
|
<h2 id='w3c-document-28-october-2015'>
|
74
74
|
<abbr title='World Wide Web Consortium'>W3C</abbr>
|
75
75
|
Document
|
76
|
-
<time class='dt-published' datetime='2021-03-
|
77
|
-
|
76
|
+
<time class='dt-published' datetime='2021-03-19' property='dc:issued'>
|
77
|
+
19 March 2021
|
78
78
|
</time>
|
79
79
|
</h2>
|
80
80
|
<dl>
|
@@ -245,7 +245,7 @@ Test
|
|
245
245
|
<a href='#subj_0'>RDF::Turtle</a>
|
246
246
|
</th>
|
247
247
|
</tr>
|
248
|
-
<tr inlist='inlist' rel='mf:entries' resource='http://example/manifest.ttl#testeval00' typeof='http://www.w3.org/ns/rdftest#TestTurtleEval TestCriterion
|
248
|
+
<tr inlist='inlist' rel='mf:entries' resource='http://example/manifest.ttl#testeval00' typeof='http://www.w3.org/ns/rdftest#TestTurtleEval TestCase TestCriterion'>
|
249
249
|
<td>
|
250
250
|
<a href='#test_1fdd82ac4caf30510cabfdb0a5987ddd'>subm-test-00</a>
|
251
251
|
</td>
|
@@ -261,9 +261,9 @@ PASS
|
|
261
261
|
</span>
|
262
262
|
</td>
|
263
263
|
</tr>
|
264
|
-
<tr inlist='inlist' rel='mf:entries' resource='_:
|
264
|
+
<tr inlist='inlist' rel='mf:entries' resource='_:b3' typeof='http://www.w3.org/ns/rdftest#TestTurtleEval TestCase TestCriterion'>
|
265
265
|
<td>
|
266
|
-
<a href='#
|
266
|
+
<a href='#test_14698d4bb89cdb1ecd9215e2a55d29c6'>subm-test-01</a>
|
267
267
|
</td>
|
268
268
|
<td class='UNTESTED' property='earl:assertions' typeof='Assertion'>
|
269
269
|
<link href='https://rubygems.org/gems/rdf-turtle' property='earl:subject' />
|
@@ -300,7 +300,7 @@ This report was tested using the following test subjects:
|
|
300
300
|
<span about='https://rubygems.org/gems/rdf-turtle' property='doap:name'>RDF::Turtle</span>
|
301
301
|
</a>
|
302
302
|
</dt>
|
303
|
-
<dd property='earl:testSubjects' resource='https://rubygems.org/gems/rdf-turtle' typeof='doap:Project Software
|
303
|
+
<dd property='earl:testSubjects' resource='https://rubygems.org/gems/rdf-turtle' typeof='doap:Project TestSubject Software'>
|
304
304
|
<dl>
|
305
305
|
<dt>Description</dt>
|
306
306
|
<dd lang='en' property='doap:description'>RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.</dd>
|
@@ -376,11 +376,11 @@ Test
|
|
376
376
|
<pre class='example actionDoc' property='mf:action' resource='http://example/test-00.ttl' title='subm-test-00 Input'>http://example/test-00.ttl not loaded</pre>
|
377
377
|
<pre class='example resultDoc' property='mf:result' resource='http://example/test-00.out' title='subm-test-00 Result'>http://example/test-00.out not loaded</pre>
|
378
378
|
</dd>
|
379
|
-
<dt id='
|
379
|
+
<dt id='test_14698d4bb89cdb1ecd9215e2a55d29c6' resource='_:b3'>
|
380
380
|
Test
|
381
381
|
<span property='dc:title mf:name'>subm-test-01</span>
|
382
382
|
</dt>
|
383
|
-
<dd resource='_:
|
383
|
+
<dd resource='_:b3'>
|
384
384
|
<p property='dc:description rdfs:comment'></p>
|
385
385
|
<pre class='example actionDoc' property='mf:action' resource='http://example/test-01.ttl' title='subm-test-01 Input'>http://example/test-01.ttl not loaded</pre>
|
386
386
|
<pre class='example resultDoc' property='mf:result' resource='http://example/test-01.out' title='subm-test-01 Result'>http://example/test-01.out not loaded</pre>
|
@@ -399,9 +399,9 @@ This report generated by
|
|
399
399
|
<meta content='Earl Report summary generator' property='doap:shortdesc' />
|
400
400
|
<meta content='EarlReport generates HTML+RDFa rollups of multiple EARL reports' property='doap:description' />
|
401
401
|
version
|
402
|
-
<span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.
|
403
|
-
<span property='doap:revision'>0.
|
404
|
-
<meta content='earl-report-0.
|
402
|
+
<span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.6.0' typeof='doap:Version'>
|
403
|
+
<span property='doap:revision'>0.6.0</span>
|
404
|
+
<meta content='earl-report-0.6.0' property='doap:name' />
|
405
405
|
</span>
|
406
406
|
an
|
407
407
|
<a href='http://unlicense.org' property='doap:license'>Unlicensed</a>
|
@@ -107,74 +107,9 @@
|
|
107
107
|
"doap:Project",
|
108
108
|
"Software"
|
109
109
|
],
|
110
|
-
"testSubjects": [
|
111
|
-
{
|
112
|
-
"@id": "https://rubygems.org/gems/rdf-turtle",
|
113
|
-
"@type": [
|
114
|
-
"doap:Project",
|
115
|
-
"Software",
|
116
|
-
"TestSubject"
|
117
|
-
],
|
118
|
-
"language": "Ruby",
|
119
|
-
"doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
|
120
|
-
"release": {
|
121
|
-
"@id": "_:b3",
|
122
|
-
"revision": "unknown"
|
123
|
-
},
|
124
|
-
"name": "RDF::Turtle",
|
125
|
-
"developer": [
|
126
|
-
{
|
127
|
-
"@id": "https://greggkellogg.net/foaf#me",
|
128
|
-
"@type": [
|
129
|
-
"foaf:Person",
|
130
|
-
"Assertor"
|
131
|
-
],
|
132
|
-
"foaf:name": "Gregg Kellogg",
|
133
|
-
"foaf:homepage": "https://greggkellogg.net/"
|
134
|
-
}
|
135
|
-
],
|
136
|
-
"homepage": "http://ruby-rdf.github.com/rdf-turtle"
|
137
|
-
}
|
138
|
-
],
|
139
|
-
"bibRef": "[[TURTLE]]",
|
140
110
|
"assertions": [
|
141
111
|
"/Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl"
|
142
112
|
],
|
143
|
-
"generatedBy": {
|
144
|
-
"@id": "https://rubygems.org/gems/earl-report",
|
145
|
-
"@type": [
|
146
|
-
"doap:Project",
|
147
|
-
"Software"
|
148
|
-
],
|
149
|
-
"language": "Ruby",
|
150
|
-
"license": "http://unlicense.org",
|
151
|
-
"doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
|
152
|
-
"shortdesc": "Earl Report summary generator",
|
153
|
-
"release": {
|
154
|
-
"@id": "https://github.com/gkellogg/earl-report/tree/0.5.2",
|
155
|
-
"@type": "doap:Version",
|
156
|
-
"name": "earl-report-0.5.2",
|
157
|
-
"doap:created": {
|
158
|
-
"@type": "http://www.w3.org/2001/XMLSchema#date",
|
159
|
-
"@value": "2021-01-19"
|
160
|
-
},
|
161
|
-
"revision": "0.5.2"
|
162
|
-
},
|
163
|
-
"name": "earl-report",
|
164
|
-
"developer": [
|
165
|
-
{
|
166
|
-
"@id": "https://greggkellogg.net/foaf#me",
|
167
|
-
"@type": [
|
168
|
-
"foaf:Person",
|
169
|
-
"Assertor"
|
170
|
-
],
|
171
|
-
"foaf:name": "Gregg Kellogg",
|
172
|
-
"foaf:homepage": "https://greggkellogg.net/"
|
173
|
-
}
|
174
|
-
],
|
175
|
-
"homepage": "https://github.com/gkellogg/earl-report"
|
176
|
-
},
|
177
|
-
"name": "Turtle Test Results",
|
178
113
|
"entries": [
|
179
114
|
{
|
180
115
|
"@id": "http://example/manifest.ttl",
|
@@ -183,51 +118,50 @@
|
|
183
118
|
"Report"
|
184
119
|
],
|
185
120
|
"rdfs:comment": "Description for Example Test Cases",
|
186
|
-
"title": "Example Test Cases",
|
187
121
|
"entries": [
|
188
122
|
{
|
189
123
|
"@id": "http://example/manifest.ttl#testeval00",
|
190
124
|
"@type": [
|
191
125
|
"http://www.w3.org/ns/rdftest#TestTurtleEval",
|
192
|
-
"
|
193
|
-
"
|
126
|
+
"TestCase",
|
127
|
+
"TestCriterion"
|
194
128
|
],
|
195
129
|
"rdfs:comment": "Blank subject",
|
196
130
|
"assertions": [
|
197
131
|
{
|
198
|
-
"@id": "_:
|
132
|
+
"@id": "_:b4",
|
199
133
|
"@type": "Assertion",
|
200
|
-
"mode": "earl:automatic",
|
201
134
|
"subject": "https://rubygems.org/gems/rdf-turtle",
|
202
|
-
"
|
135
|
+
"mode": "earl:automatic",
|
203
136
|
"test": "http://example/manifest.ttl#testeval00",
|
137
|
+
"assertedBy": "https://greggkellogg.net/foaf#me",
|
204
138
|
"result": {
|
205
|
-
"@id": "_:
|
139
|
+
"@id": "_:b5",
|
206
140
|
"@type": "TestResult",
|
207
141
|
"outcome": "earl:passed"
|
208
142
|
}
|
209
143
|
}
|
210
144
|
],
|
211
145
|
"testAction": "http://example/test-00.ttl",
|
212
|
-
"
|
213
|
-
"
|
146
|
+
"title": "subm-test-00",
|
147
|
+
"testResult": "http://example/test-00.out"
|
214
148
|
},
|
215
149
|
{
|
216
150
|
"@id": "_:b0",
|
217
151
|
"@type": [
|
218
152
|
"http://www.w3.org/ns/rdftest#TestTurtleEval",
|
219
|
-
"
|
220
|
-
"
|
153
|
+
"TestCase",
|
154
|
+
"TestCriterion"
|
221
155
|
],
|
222
156
|
"rdfs:comment": "@prefix and qnames",
|
223
157
|
"assertions": [
|
224
158
|
{
|
225
|
-
"@id": "_:
|
159
|
+
"@id": "_:b2",
|
226
160
|
"@type": "Assertion",
|
227
161
|
"subject": "https://rubygems.org/gems/rdf-turtle",
|
228
162
|
"test": "_:b0",
|
229
163
|
"result": {
|
230
|
-
"@id": "_:
|
164
|
+
"@id": "_:b3",
|
231
165
|
"@type": "TestResult",
|
232
166
|
"outcome": "earl:untested"
|
233
167
|
},
|
@@ -235,10 +169,76 @@
|
|
235
169
|
}
|
236
170
|
],
|
237
171
|
"testAction": "http://example/test-01.ttl",
|
238
|
-
"
|
239
|
-
"
|
172
|
+
"title": "subm-test-01",
|
173
|
+
"testResult": "http://example/test-01.out"
|
240
174
|
}
|
241
|
-
]
|
175
|
+
],
|
176
|
+
"title": "Example Test Cases"
|
242
177
|
}
|
243
|
-
]
|
178
|
+
],
|
179
|
+
"testSubjects": [
|
180
|
+
{
|
181
|
+
"@id": "https://rubygems.org/gems/rdf-turtle",
|
182
|
+
"@type": [
|
183
|
+
"doap:Project",
|
184
|
+
"TestSubject",
|
185
|
+
"Software"
|
186
|
+
],
|
187
|
+
"developer": [
|
188
|
+
{
|
189
|
+
"@id": "https://greggkellogg.net/foaf#me",
|
190
|
+
"@type": [
|
191
|
+
"foaf:Person",
|
192
|
+
"Assertor"
|
193
|
+
],
|
194
|
+
"foaf:name": "Gregg Kellogg",
|
195
|
+
"foaf:homepage": "https://greggkellogg.net/"
|
196
|
+
}
|
197
|
+
],
|
198
|
+
"doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
|
199
|
+
"release": {
|
200
|
+
"@id": "_:b1",
|
201
|
+
"revision": "unknown"
|
202
|
+
},
|
203
|
+
"name": "RDF::Turtle",
|
204
|
+
"homepage": "http://ruby-rdf.github.com/rdf-turtle",
|
205
|
+
"language": "Ruby"
|
206
|
+
}
|
207
|
+
],
|
208
|
+
"bibRef": "[[TURTLE]]",
|
209
|
+
"name": "Turtle Test Results",
|
210
|
+
"generatedBy": {
|
211
|
+
"@id": "https://rubygems.org/gems/earl-report",
|
212
|
+
"@type": [
|
213
|
+
"doap:Project",
|
214
|
+
"Software"
|
215
|
+
],
|
216
|
+
"developer": [
|
217
|
+
{
|
218
|
+
"@id": "https://greggkellogg.net/foaf#me",
|
219
|
+
"@type": [
|
220
|
+
"foaf:Person",
|
221
|
+
"Assertor"
|
222
|
+
],
|
223
|
+
"foaf:name": "Gregg Kellogg",
|
224
|
+
"foaf:homepage": "https://greggkellogg.net/"
|
225
|
+
}
|
226
|
+
],
|
227
|
+
"doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
|
228
|
+
"license": "http://unlicense.org",
|
229
|
+
"release": {
|
230
|
+
"@id": "https://github.com/gkellogg/earl-report/tree/0.6.0",
|
231
|
+
"@type": "doap:Version",
|
232
|
+
"revision": "0.6.0",
|
233
|
+
"doap:created": {
|
234
|
+
"@type": "http://www.w3.org/2001/XMLSchema#date",
|
235
|
+
"@value": "2021-03-19"
|
236
|
+
},
|
237
|
+
"name": "earl-report-0.6.0"
|
238
|
+
},
|
239
|
+
"name": "earl-report",
|
240
|
+
"homepage": "https://github.com/gkellogg/earl-report",
|
241
|
+
"shortdesc": "Earl Report summary generator",
|
242
|
+
"language": "Ruby"
|
243
|
+
}
|
244
244
|
}
|
data/spec/test-files/results.ttl
CHANGED
@@ -8,21 +8,21 @@
|
|
8
8
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
9
9
|
|
10
10
|
<> a doap:Project, earl:Software ;
|
11
|
+
earl:assertions </Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl> ;
|
12
|
+
mf:entries (<http://example/manifest.ttl>) ;
|
11
13
|
earl:testSubjects <https://rubygems.org/gems/rdf-turtle> ;
|
12
14
|
dc:bibliographicCitation "[[TURTLE]]" ;
|
13
|
-
earl:assertions </Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl> ;
|
14
|
-
earl:generatedBy <https://rubygems.org/gems/earl-report> ;
|
15
15
|
doap:name "Turtle Test Results" ;
|
16
|
-
|
16
|
+
earl:generatedBy <https://rubygems.org/gems/earl-report> .
|
17
17
|
|
18
18
|
# Manifests
|
19
19
|
<http://example/manifest.ttl> a mf:Manifest, earl:Report ;
|
20
20
|
rdfs:comment "Description for Example Test Cases" ;
|
21
|
-
mf:name "Example Test Cases" ;
|
22
21
|
mf:entries (<http://example/manifest.ttl#testeval00>
|
23
|
-
_:b0)
|
22
|
+
_:b0) ;
|
23
|
+
mf:name "Example Test Cases" .
|
24
24
|
|
25
|
-
<http://example/manifest.ttl#testeval00> a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:
|
25
|
+
<http://example/manifest.ttl#testeval00> a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:TestCase, earl:TestCriterion ;
|
26
26
|
rdfs:comment "Blank subject" ;
|
27
27
|
earl:assertions [
|
28
28
|
a earl:Assertion ;
|
@@ -35,10 +35,10 @@
|
|
35
35
|
earl:assertedBy <https://greggkellogg.net/foaf#me> ;
|
36
36
|
] ;
|
37
37
|
mf:action <http://example/test-00.ttl> ;
|
38
|
-
mf:
|
39
|
-
mf:
|
38
|
+
mf:name "subm-test-00" ;
|
39
|
+
mf:result <http://example/test-00.out> .
|
40
40
|
|
41
|
-
_:b0 a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:
|
41
|
+
_:b0 a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:TestCase, earl:TestCriterion ;
|
42
42
|
rdfs:comment "@prefix and qnames" ;
|
43
43
|
earl:assertions [
|
44
44
|
a earl:Assertion ;
|
@@ -50,16 +50,16 @@ _:b0 a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:TestCriterion, earl:T
|
|
50
50
|
] ;
|
51
51
|
] ;
|
52
52
|
mf:action <http://example/test-01.ttl> ;
|
53
|
-
mf:
|
54
|
-
mf:
|
53
|
+
mf:name "subm-test-01" ;
|
54
|
+
mf:result <http://example/test-01.out> .
|
55
55
|
|
56
|
-
<https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:
|
57
|
-
doap:
|
56
|
+
<https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
|
57
|
+
doap:developer <https://greggkellogg.net/foaf#me> ;
|
58
58
|
doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
|
59
59
|
doap:release [doap:revision "unknown"] ;
|
60
60
|
doap:name "RDF::Turtle" ;
|
61
|
-
doap:
|
62
|
-
doap:
|
61
|
+
doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
|
62
|
+
doap:programming-language "Ruby" .
|
63
63
|
|
64
64
|
<https://greggkellogg.net/foaf#me> a foaf:Person, earl:Assertor ;
|
65
65
|
foaf:name "Gregg Kellogg" ;
|
@@ -74,10 +74,10 @@ _:b0 a <http://www.w3.org/ns/rdftest#TestTurtleEval>, earl:TestCriterion, earl:T
|
|
74
74
|
doap:homepage <https://github.com/gkellogg/earl-report>;
|
75
75
|
doap:programming-language "Ruby";
|
76
76
|
doap:license <http://unlicense.org>;
|
77
|
-
doap:release <https://github.com/gkellogg/earl-report/tree/0.
|
77
|
+
doap:release <https://github.com/gkellogg/earl-report/tree/0.6.0>;
|
78
78
|
doap:developer <https://greggkellogg.net/foaf#me> .
|
79
79
|
|
80
|
-
<https://github.com/gkellogg/earl-report/tree/0.
|
81
|
-
doap:name "earl-report-0.
|
82
|
-
doap:created "2021-
|
83
|
-
doap:revision "0.
|
80
|
+
<https://github.com/gkellogg/earl-report/tree/0.6.0> a doap:Version;
|
81
|
+
doap:name "earl-report-0.6.0";
|
82
|
+
doap:created "2021-03-19"^^xsd:date;
|
83
|
+
doap:revision "0.6.0" .
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: earl-report
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregg Kellogg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: linkeddata
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- spec/test-files/report-complete.ttl
|
172
172
|
- spec/test-files/report-no-doap.ttl
|
173
173
|
- spec/test-files/report-no-foaf.ttl
|
174
|
+
- spec/test-files/report-no-test.ttl
|
174
175
|
- spec/test-files/results.html
|
175
176
|
- spec/test-files/results.jsonld
|
176
177
|
- spec/test-files/results.ttl
|
@@ -188,7 +189,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
188
189
|
requirements:
|
189
190
|
- - ">="
|
190
191
|
- !ruby/object:Gem::Version
|
191
|
-
version: '2.
|
192
|
+
version: '2.5'
|
192
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
194
|
requirements:
|
194
195
|
- - ">="
|
@@ -208,6 +209,7 @@ test_files:
|
|
208
209
|
- spec/test-files/report-complete.ttl
|
209
210
|
- spec/test-files/report-no-doap.ttl
|
210
211
|
- spec/test-files/report-no-foaf.ttl
|
212
|
+
- spec/test-files/report-no-test.ttl
|
211
213
|
- spec/test-files/results.html
|
212
214
|
- spec/test-files/results.jsonld
|
213
215
|
- spec/test-files/results.ttl
|