earl-report 0.4.7 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50eb02a189f3d91a96f8db733c5eab4d79964b1c0bf69126df582449bfb123ac
4
- data.tar.gz: 1596513fb59d3c36260bfde85451703daab944ab9eb6d48a3bef90ed24e1a0d3
3
+ metadata.gz: f6345cb8e00528750c59fd766f4f960b147bfa3bf9bc381647125ef998796c48
4
+ data.tar.gz: 5ee09de5bf8bbf07c8f50a402675e57f8188942862ca5b5093dd9b59b41fb7ab
5
5
  SHA512:
6
- metadata.gz: 368a82a26e9750cec60efa8a34c2e0073035b3129cd4aa07a7ed4b1f175c7001877d7dc04c4d4d19c2077f372917ccd0e0f4ae77ebb3936b9b276b017e04984c
7
- data.tar.gz: 957d722026e0d0d4e9be7772495b95901b61a23ac50bbf644b58f872346c8d09558138959e00f82b22ad9144603ceed0d74ce2c2a27c9793ca0444c723081e0f
6
+ metadata.gz: ab5a74f3491417239de8588836631c6a096714e7e4ef53a4d77fbc0f828c83c60b066a69eeed28a7908f62b393b0b882d9e1e56d1836512acb8a81c20516b4c8
7
+ data.tar.gz: edc4f281a97edb3d2614fe8db7bcdbf92d841a7764c9a0f917215bccc57197697f1e87b5c548cebd7eab981762d01475cee014f80840d1855e34aac791ec2b25
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
  Ruby gem to consolidate multiple EARL report and generate a rollup conformance report.
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/earl-report.png)](http://badge.fury.io/rb/earl-report)
5
- [![Build Status](https://travis-ci.org/gkellogg/earl-report.png?branch=master)](http://travis-ci.org/gkellogg/earl-report)
6
- [![Coverage Status](https://coveralls.io/repos/gkellogg/earl-report/badge.svg)](https://coveralls.io/r/gkellogg/earl-report)
5
+ [![Build Status](https://github.com/gkellogg/earl-report/workflows/CI/badge.svg?branch=develop)](https://github.com/gkellogg/earl-report/actions?query=workflow%3ACI)
6
+ [![Coverage Status](https://coveralls.io/repos/gkellogg/earl-report/badge.svg?branch=develop)](https://coveralls.io/r/gkellogg/earl-report?branch=develop)
7
7
 
8
8
  ## Description
9
9
  Reads a test manifest in the
@@ -18,7 +18,7 @@ in the following form:
18
18
 
19
19
  [ a earl:Assertion;
20
20
  earl:assertedBy <http://greggkellogg.net/foaf#me>;
21
- earl:subject <http://rubygems.org/gems/rdf-turtle>;
21
+ earl:subject <https://rubygems.org/gems/rdf-turtle>;
22
22
  earl:test <http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-turtle/tests-ttl/manifest.ttl#turtle-syntax-file-01>;
23
23
  earl:result [
24
24
  a earl:TestResult;
@@ -29,11 +29,16 @@ in the following form:
29
29
  Additionally, `earl:subject` is expected to reference a [DOAP]() description
30
30
  of the reported software, in the following form:
31
31
 
32
- <http://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
32
+ <https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
33
33
  doap:name "RDF::Turtle" ;
34
34
  doap:developer <http://greggkellogg.net/foaf#me> ;
35
35
  doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
36
36
  doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
37
+ doap:release [
38
+ doap:name "RDF::Turtle 3.1.0" ;
39
+ doap:created "2015-09-27"^^xsd:date ;
40
+ doap:revision "3.1.0"
41
+ ] ;
37
42
  doap:programming-language "Ruby" .
38
43
 
39
44
  The [DOAP]() description may be included in the [EARL]() report. If not found,
@@ -98,7 +103,7 @@ Version 0.3 and prior re-constructed the test manifest used to create the body o
98
103
  dc:date "2012-11-06T19:23:29-08:00"^^xsd:dateTime;
99
104
  earl:outcome earl:passed
100
105
  ];
101
- earl:subject <http://rubygems.org/gems/rdf-turtle>;
106
+ earl:subject <https://rubygems.org/gems/rdf-turtle>;
102
107
  earl:test <http://example/manifest.ttl#testeval00>
103
108
  ]) .
104
109
 
@@ -127,7 +132,7 @@ Generally, creating a `json` format first is more efficient. Subsequent invocati
127
132
  When run, `earl-report` attempts to open the file `.earl` in the current directory. This file is in [YAML][] format with entries for each option. Use the `--rc` option to automatically generate it.
128
133
 
129
134
  ## Author
130
- * [Gregg Kellogg](http://github.com/gkellogg) - <http://greggkellogg.net/>
135
+ * [Gregg Kellogg](https://github.com/gkellogg) - <http://greggkellogg.net/>
131
136
 
132
137
  ## License
133
138
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.7
1
+ 0.5.2
@@ -33,12 +33,14 @@ class EarlReport
33
33
  PREFIX doap: <http://usefulinc.com/ns/doap#>
34
34
  PREFIX foaf: <http://xmlns.com/foaf/0.1/>
35
35
 
36
- SELECT DISTINCT ?uri ?name ?doapDesc ?homepage ?language ?developer ?devName ?devType ?devHomepage
36
+ SELECT DISTINCT ?uri ?name ?doapDesc ?release ?revision ?homepage ?language ?developer ?devName ?devType ?devHomepage
37
37
  WHERE {
38
38
  ?uri a doap:Project; doap:name ?name; doap:developer ?developer .
39
39
  OPTIONAL { ?uri doap:homepage ?homepage . }
40
40
  OPTIONAL { ?uri doap:description ?doapDesc . }
41
41
  OPTIONAL { ?uri doap:programming-language ?language . }
42
+ OPTIONAL { ?uri doap:release ?release . }
43
+ OPTIONAL { ?release doap:revision ?revision .}
42
44
  OPTIONAL { ?developer a ?devType .}
43
45
  OPTIONAL { ?developer foaf:name ?devName .}
44
46
  OPTIONAL { ?developer foaf:homepage ?devHomepage .}
@@ -78,8 +80,9 @@ class EarlReport
78
80
 
79
81
  TEST_FRAME = {
80
82
  "@context" => {
81
- "@vocab" => "http://www.w3.org/ns/earl#",
82
- "foaf:homepage" => {"@type" => "@id"},
83
+ "@version" => 1.1,
84
+ "@vocab" => "http://www.w3.org/ns/earl#",
85
+ "foaf:homepage"=> {"@type" => "@id"},
83
86
  "dc" => "http://purl.org/dc/terms/",
84
87
  "doap" => "http://usefulinc.com/ns/doap#",
85
88
  "earl" => "http://www.w3.org/ns/earl#",
@@ -123,8 +126,10 @@ class EarlReport
123
126
  },
124
127
  "testSubjects" => {
125
128
  "@embed" => "@always",
129
+ "@requireAll" => false,
126
130
  "@type" => "earl:TestSubject",
127
131
  "developer" => {"@embed" => "@always"},
132
+ "release" => {"@embed" => "@always"},
128
133
  "homepage" => {"@embed" => "@never"}
129
134
  },
130
135
  "entries" => [{
@@ -216,7 +221,15 @@ class EarlReport
216
221
  test_resources = tests.values.map {|v| v[:uri]}.uniq.compact
217
222
  subjects = {}
218
223
 
219
- assertion_graph = RDF::Graph.new
224
+ # Initialize test assertions with an entry for each test subject
225
+ test_assertion_lists = {}
226
+ test_assertion_lists = tests.keys.inject({}) do |memo, test|
227
+ memo.merge(test => [])
228
+ end
229
+
230
+ assertion_stats = {}
231
+ release_node_mapper = {}
232
+
220
233
  # Read test assertion files into assertion graph
221
234
  files.flatten.each do |file|
222
235
  status "read #{file}"
@@ -233,10 +246,10 @@ class EarlReport
233
246
 
234
247
  # Load DOAP definitions
235
248
  unless solution[:name] # not loaded
236
- status "read doap description for #{subject}"
249
+ status " read doap description for #{subject}"
237
250
  begin
238
251
  doap_graph = RDF::Graph.load(subject)
239
- status " loaded #{doap_graph.count} triples"
252
+ status " loaded #{doap_graph.count} triples"
240
253
  file_graph << doap_graph.to_a
241
254
  rescue
242
255
  warn "\nfailed to load DOAP from #{subject}: #{$!}"
@@ -256,10 +269,10 @@ class EarlReport
256
269
  if !solutions.first[:developer]
257
270
  warn "\nNo developer identified for #{solutions.first[:uri]}"
258
271
  elsif !solutions.first[:devName]
259
- status "read description for developer #{solutions.first[:developer].inspect}"
272
+ status " read description for developer #{solutions.first[:developer].inspect}"
260
273
  begin
261
274
  foaf_graph = RDF::Graph.load(solutions.first[:developer])
262
- status " loaded #{foaf_graph.count} triples"
275
+ status " loaded #{foaf_graph.count} triples"
263
276
  file_graph << foaf_graph.to_a
264
277
  # Reload solutions
265
278
  solutions = SPARQL.execute(TEST_SUBJECT_QUERY, file_graph)
@@ -268,6 +281,7 @@ class EarlReport
268
281
  end
269
282
  end
270
283
 
284
+ release = nil
271
285
  solutions.each do |solution|
272
286
  # Kepp track of subjects
273
287
  subjects[solution[:uri]] = RDF::URI(file)
@@ -289,56 +303,61 @@ class EarlReport
289
303
  graph << RDF::Statement(solution[:developer], RDF.type, solution[:devType]) if solution[:devType]
290
304
  graph << RDF::Statement(solution[:developer], RDF::Vocab::FOAF.name, devName) if devName
291
305
  graph << RDF::Statement(solution[:developer], RDF::Vocab::FOAF.homepage, solution[:devHomepage]) if solution[:devHomepage]
306
+
307
+ # Make sure BNode identifiers don't leak
308
+ release ||= if !solution[:release] || solution[:release].node?
309
+ RDF::Node.new
310
+ else
311
+ solution[:release]
312
+ end
313
+ graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.release, release)
314
+ graph << RDF::Statement(release, RDF::Vocab::DOAP.revision, (solution[:revision] || "unknown"))
292
315
  end
293
316
 
294
- assertion_graph << file_graph
295
- end
296
- end
317
+ # Make sure that each assertion matches a test and add reference from test to assertion
318
+ found_solutions = false
319
+ subject = nil
297
320
 
298
- # Make sure that each assertion matches a test and add reference from test to assertion
299
- found_solutions = {}
321
+ status " query assertions"
322
+ SPARQL.execute(ASSERTION_QUERY, file_graph).each do |solution|
323
+ subject = solution[:subject]
324
+ unless tests[solution[:test]]
325
+ assertion_stats["Skipped"] = assertion_stats["Skipped"].to_i + 1
326
+ $stderr.puts "Skipping result for #{solution[:test]} for #{subject}, which is not defined in manifests"
327
+ next
328
+ end
329
+ unless subjects[subject]
330
+ assertion_stats["Missing Subject"] = assertion_stats["Missing Subject"].to_i + 1
331
+ $stderr.puts "No test result subject found for #{subject}: in #{subjects.keys.join(', ')}"
332
+ next
333
+ end
334
+ found_solutions ||= true
335
+ assertion_stats["Found"] = assertion_stats["Found"].to_i + 1
300
336
 
301
- # Initialize test assertions with an entry for each test subject
302
- test_assertion_lists = {}
303
- test_assertion_lists = tests.keys.inject({}) do |memo, test|
304
- memo.merge(test => Array.new(subjects.length))
305
- end
337
+ # Add this solution at the appropriate index within that list
338
+ ndx = subjects.keys.find_index(subject)
339
+ ary = test_assertion_lists[solution[:test]]
306
340
 
307
- status "query assertions"
308
- assertion_stats = {}
309
- SPARQL.execute(ASSERTION_QUERY, assertion_graph).each do |solution|
310
- subject = solution[:subject]
311
- unless tests[solution[:test]]
312
- assertion_stats["Skipped"] = assertion_stats["Skipped"].to_i + 1
313
- $stderr.puts "Skipping result for #{solution[:test]} for #{subject}, which is not defined in manifests"
314
- next
315
- end
316
- unless subjects[subject]
317
- assertion_stats["Missing Subject"] = assertion_stats["Missing Subject"].to_i + 1
318
- $stderr.puts "No test result subject found for #{subject}: in #{subjects.keys.join(', ')}"
319
- next
341
+ ary[ndx] = a = RDF::Node.new
342
+ graph << RDF::Statement(a, RDF.type, EARL.Assertion)
343
+ graph << RDF::Statement(a, EARL.subject, subject)
344
+ graph << RDF::Statement(a, EARL.test, solution[:test])
345
+ graph << RDF::Statement(a, EARL.assertedBy, solution[:by])
346
+ graph << RDF::Statement(a, EARL.mode, solution[:mode]) if solution[:mode]
347
+ r = RDF::Node.new
348
+ graph << RDF::Statement(a, EARL.result, r)
349
+ graph << RDF::Statement(r, RDF.type, EARL.TestResult)
350
+ graph << RDF::Statement(r, EARL.outcome, solution[:outcome])
351
+ end
352
+
353
+ # See if subject did not report results, which may indicate a formatting error in the EARL source
354
+ $stderr.puts "No results found for #{subject} using #{ASSERTION_QUERY}" unless found_solutions
320
355
  end
321
- found_solutions[subject] = true
322
- assertion_stats["Found"] = assertion_stats["Found"].to_i + 1
323
-
324
- # Add this solution at the appropriate index within that list
325
- ndx = subjects.keys.find_index(subject)
326
- ary = test_assertion_lists[solution[:test]] ||= []
327
-
328
- ary[ndx] = a = RDF::Node.new
329
- graph << RDF::Statement(a, RDF.type, EARL.Assertion)
330
- graph << RDF::Statement(a, EARL.subject, subject)
331
- graph << RDF::Statement(a, EARL.test, solution[:test])
332
- graph << RDF::Statement(a, EARL.assertedBy, solution[:by])
333
- graph << RDF::Statement(a, EARL.mode, solution[:mode]) if solution[:mode]
334
- r = RDF::Node.new
335
- graph << RDF::Statement(a, EARL.result, r)
336
- graph << RDF::Statement(r, RDF.type, EARL.TestResult)
337
- graph << RDF::Statement(r, EARL.outcome, solution[:outcome])
338
356
  end
339
357
 
340
358
  # Add ordered assertions for each test
341
359
  test_assertion_lists.each do |test, ary|
360
+ ary[subjects.length - 1] ||= nil # extend for all subjects
342
361
  # Fill any missing entries with an untested outcome
343
362
  ary.each_with_index do |a, ndx|
344
363
  unless a
@@ -360,11 +379,6 @@ class EarlReport
360
379
 
361
380
  assertion_stats.each {|stat, count| status("Assertions #{stat}: #{count}")}
362
381
 
363
- # See if any subject did not report results, which may indicate a formatting error in the EARL source
364
- subjects.reject {|s| found_solutions[s]}.each do |sub|
365
- $stderr.puts "No results found for #{sub} using #{ASSERTION_QUERY}"
366
- end
367
-
368
382
  # Add report wrapper to graph
369
383
  ttl = %(
370
384
  @prefix dc: <http://purl.org/dc/terms/> .
@@ -376,12 +390,12 @@ class EarlReport
376
390
  <> a earl:Software, doap:Project;
377
391
  doap:name #{quoted(@options.fetch(:name, 'Unknown'))};
378
392
  dc:bibliographicCitation "#{@options.fetch(:bibRef, 'Unknown reference')}";
379
- earl:generatedBy <http://rubygems.org/gems/earl-report>;
393
+ earl:generatedBy <https://rubygems.org/gems/earl-report>;
380
394
  earl:assertions #{subjects.values.map {|f| f.to_ntriples}.join(",\n ")};
381
395
  earl:testSubjects #{subjects.keys.map {|f| f.to_ntriples}.join(",\n ")};
382
396
  mf:entries (#{man_uris.map {|f| f.to_ntriples}.join("\n ")}) .
383
397
 
384
- <http://rubygems.org/gems/earl-report> a earl:Software, doap:Project;
398
+ <https://rubygems.org/gems/earl-report> a earl:Software, doap:Project;
385
399
  doap:name "earl-report";
386
400
  doap:shortdesc "Earl Report summary generator"@en;
387
401
  doap:description "EarlReport generates HTML+RDFa rollups of multiple EARL reports"@en;
@@ -473,13 +487,26 @@ class EarlReport
473
487
  def json_hash
474
488
  @json_hash ||= begin
475
489
  # Customized JSON-LD output
476
- r = JSON::LD::API.fromRDF(graph) do |expanded|
477
- JSON::LD::API.frame(expanded, TEST_FRAME, expanded: true, embed: '@never')
490
+ result = JSON::LD::API.fromRDF(graph) do |expanded|
491
+ framed = JSON::LD::API.frame(expanded, TEST_FRAME,
492
+ expanded: true,
493
+ embed: '@never',
494
+ pruneBlankNodeIdentifiers: false)
495
+ # Reorder test subjects by @id
496
+ framed['testSubjects'] = Array(framed['testSubjects']).sort_by {|t| t['@id']}
497
+
498
+ # Reorder test assertions to make them consistent with subject order
499
+ Array(framed['entries']).each do |manifest|
500
+ manifest['entries'].each do |test|
501
+ test['assertions'] = test['assertions'].sort_by {|a| a['subject']}
502
+ end
503
+ end
504
+ framed
478
505
  end
479
- unless r.is_a?(Hash) && r.has_key?('@graph') && Array(r["@graph"]).length == 1
480
- raise "Expected JSON result to have a single entry, it had #{Array(r["@graph"]).length rescue 'unknown'} entries"
506
+ unless result.is_a?(Hash)
507
+ raise "Expected JSON result to have a single entry, it had #{result.length rescue 'unknown'} entries"
481
508
  end
482
- {"@context" => r["@context"]}.merge(r["@graph"].first)
509
+ result
483
510
  end
484
511
  end
485
512
 
@@ -516,18 +543,18 @@ class EarlReport
516
543
 
517
544
  # Write test subjects
518
545
  io.puts "\n# Test Subjects"
519
- graph.query(subject: top_level, predicate: EARL.testSubjects).each do |s|
546
+ graph.query({subject: top_level, predicate: EARL.testSubjects}).each do |s|
520
547
  writer.send(:statement, s.object)
521
548
 
522
549
  # Write each developer
523
- graph.query(subject: s.object, predicate: RDF::Vocab::DOAP.developer).each do |d|
550
+ graph.query({subject: s.object, predicate: RDF::Vocab::DOAP.developer}).each do |d|
524
551
  writer.send(:statement, d.object)
525
552
  end
526
553
  end
527
554
 
528
555
  # Write generator
529
556
  io.puts "\n# Report Generation Software"
530
- writer.send(:statement, RDF::URI("http://rubygems.org/gems/earl-report"))
557
+ writer.send(:statement, RDF::URI("https://rubygems.org/gems/earl-report"))
531
558
  writer.send(:statement, RDF::URI("https://github.com/gkellogg/earl-report/tree/#{VERSION}"))
532
559
  end
533
560
 
@@ -10,7 +10,7 @@
10
10
  -# "assertions": ["./rdf.rb-earl.ttl"],
11
11
  -# "testSubjects": [
12
12
  -# {
13
- -# "@id": "http://rubygems.org/gems/rdf-turtle",
13
+ -# "@id": "https://rubygems.org/gems/rdf-turtle",
14
14
  -# "@type": "earl:TestSubject",
15
15
  -# "name": "RDF::Turtle"
16
16
  -# },
@@ -29,7 +29,7 @@
29
29
  -# "@type": "earl:Assertion",
30
30
  -# "assertedBy": "http://greggkellogg.net/foaf#me",
31
31
  -# "test": "http://svn.apache.org/repos/asf/jena/Experimental/riot-reader/testing/RIOT/Lang/TurtleSubm/manifest.ttl#testeval00",
32
- -# "subject": "http://rubygems.org/gems/rdf-turtle",
32
+ -# "subject": "https://rubygems.org/gems/rdf-turtle",
33
33
  -# "result": {
34
34
  -# "@type": "earl:TestResult",
35
35
  -# "outcome": "earl:passed"
@@ -334,10 +334,12 @@
334
334
  - pass_fail = assertion['result']['outcome'].split(':').last.upcase.sub(/(PASS|FAIL)ED$/, '\1')
335
335
  - passed_tests[ndx2][ndx] = (passed_tests[ndx2][ndx] || 0) + (pass_fail == 'PASS' ? 1 : 0)
336
336
  %td{class: pass_fail, property: "earl:assertions", typeof: assertion['@type']}
337
- - if assertion['assertedBy']
337
+ - if assertion['assertedBy'] && !assertion['assertedBy'].start_with?('_:')
338
338
  %link{property: "earl:assertedBy", href: assertion['assertedBy']}
339
- %link{property: "earl:test", href: assertion['test']}
340
- %link{property: "earl:subject", href: assertion['subject']}
339
+ - if assertion['test'] && !assertion['test'].start_with?('_:')
340
+ %link{property: "earl:test", href: assertion['test']}
341
+ - if assertion['subject'] && !assertion['subject'].start_with?('_:')
342
+ %link{property: "earl:subject", href: assertion['subject']}
341
343
  - if assertion['mode']
342
344
  %link{property: 'earl:mode', href: assertion['mode']}
343
345
  %span{property: "earl:result", typeof: assertion['result']['@type']}
@@ -369,6 +371,13 @@
369
371
  %dt= "Description"
370
372
  %dd{property: "doap:description", lang: 'en'}<
371
373
  ~ CGI.escapeHTML subject['doapDesc']
374
+ - if subject['release']
375
+ - subject['release'] = subject['release'].first if subject['release'].is_a?(Array)
376
+ - subject['release']['revision'] = subject['release']['revision']['@value'] if subject['release']['revision'].is_a?(Hash)
377
+ %dt= "Release"
378
+ %dd{property: "doap:release"}<
379
+ %span{property: "doap:revision"}<
380
+ ~ CGI.escapeHTML subject['release']['revision'].to_s
372
381
  - if subject['language']
373
382
  - subject['language'] = subject['language']['@value'] if subject['language'].is_a?(Hash)
374
383
  %dt= "Programming Language"
@@ -436,10 +445,10 @@
436
445
  %p{property: "dc:description rdfs:comment"}<
437
446
  ~ CGI.escapeHTML test['description'].to_s
438
447
  %pre{class: "example actionDoc", property: "mf:action", resource: test['testAction'], title: "#{test['title']} Input"}<
439
- ~ Kernel.open(test['testAction']) {|f| f.set_encoding(Encoding::UTF_8); CGI.escapeHTML(f.read).gsub(/\n/, '<br/>')} rescue "#{test['testAction']} not loaded"
448
+ ~ URI.open(test['testAction']) {|f| f.set_encoding(Encoding::UTF_8); CGI.escapeHTML(f.read).gsub(/\n/, '<br/>')} rescue "#{test['testAction']} not loaded"
440
449
  - if test['testResult']
441
450
  %pre{class: "example resultDoc", property: "mf:result", resource: test['testResult'], title: "#{test['title']} Result"}<
442
- ~ Kernel.open(test['testResult']) {|f| f.set_encoding(Encoding::UTF_8); CGI.escapeHTML(f.read).gsub(/\n/, '<br/>')} rescue "#{test['testResult']} not loaded"
451
+ ~ URI.open(test['testResult']) {|f| f.set_encoding(Encoding::UTF_8); CGI.escapeHTML(f.read).gsub(/\n/, '<br/>')} rescue "#{test['testResult']} not loaded"
443
452
  %section.appendix#report-generation-software{property: "earl:generatedBy", resource: tests['generatedBy']['@id'], typeof: tests['generatedBy']['@type'].join(' ')}
444
453
  %h2
445
454
  %span.secno="D."
@@ -457,7 +466,8 @@
457
466
  %span{property: "doap:release", resource: rel['@id'], typeof: 'doap:Version'}
458
467
  %span{property: "doap:revision"}<=rel['revision']
459
468
  %meta{property: "doap:name", content: rel['name']}
460
- %meta{property: "doap:created", content: rel['created'], datatype: "xsd:date"}
469
+ - if rel['created']
470
+ %meta{property: "doap:created", content: rel['created'], datatype: "xsd:date"}
461
471
  an
462
472
  %a{property: "doap:license", href: doap['license']}<="Unlicensed"
463
473
  %span{property: "doap:programming-language"}<="Ruby"
@@ -79,7 +79,7 @@ describe EarlReport do
79
79
  end
80
80
 
81
81
  it "loads doap" do
82
- expect(subject.graph.subjects.to_a).to include(RDF::URI("http://rubygems.org/gems/rdf-turtle"))
82
+ expect(subject.graph.subjects.to_a).to include(RDF::URI("https://rubygems.org/gems/rdf-turtle"))
83
83
  end
84
84
 
85
85
  it "loads foaf" do
@@ -96,7 +96,7 @@ describe EarlReport do
96
96
  .with(File.expand_path("../test-files/report-no-doap.ttl", __FILE__))
97
97
  .and_return(reportNoDoap)
98
98
  expect(RDF::Graph).to receive(:load)
99
- .with("http://rubygems.org/gems/rdf-turtle")
99
+ .with("https://rubygems.org/gems/rdf-turtle")
100
100
  .and_return(doap)
101
101
  end
102
102
 
@@ -116,7 +116,7 @@ describe EarlReport do
116
116
  end
117
117
 
118
118
  it "loads doap" do
119
- expect(subject.graph.subjects.to_a).to include(RDF::URI("http://rubygems.org/gems/rdf-turtle"))
119
+ expect(subject.graph.subjects.to_a).to include(RDF::URI("https://rubygems.org/gems/rdf-turtle"))
120
120
  end
121
121
 
122
122
  it "loads foaf" do
@@ -153,7 +153,7 @@ describe EarlReport do
153
153
  end
154
154
 
155
155
  it "loads doap" do
156
- expect(subject.graph.subjects.to_a).to include(RDF::URI("http://rubygems.org/gems/rdf-turtle"))
156
+ expect(subject.graph.subjects.to_a).to include(RDF::URI("https://rubygems.org/gems/rdf-turtle"))
157
157
  end
158
158
 
159
159
  it "loads foaf" do
@@ -384,7 +384,7 @@ describe EarlReport do
384
384
  dc:bibliographicCitation "[[TURTLE]]";
385
385
  earl:generatedBy ?generatedBy;
386
386
  earl:assertions ?assertionFile;
387
- earl:testSubjects <http://rubygems.org/gems/rdf-turtle>;
387
+ earl:testSubjects <https://rubygems.org/gems/rdf-turtle>;
388
388
  mf:entries (<http://example/manifest.ttl>) .
389
389
 
390
390
  <http://example/manifest.ttl> a earl:Report, mf:Manifest;
@@ -401,7 +401,7 @@ describe EarlReport do
401
401
  PREFIX earl: <http://www.w3.org/ns/earl#>
402
402
 
403
403
  ASK WHERE {
404
- <http://rubygems.org/gems/rdf-turtle> a earl:TestSubject, doap:Project;
404
+ <https://rubygems.org/gems/rdf-turtle> a earl:TestSubject, doap:Project;
405
405
  doap:name "RDF::Turtle";
406
406
  doap:description """RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."""@en;
407
407
  doap:programming-language "Ruby";
@@ -429,7 +429,7 @@ describe EarlReport do
429
429
  mf:name "subm-test-00";
430
430
  mf:action <http://example/test-00.ttl>;
431
431
  mf:result <http://example/test-00.out>;
432
- earl:assertions [ a earl:Assertion; earl:subject <http://rubygems.org/gems/rdf-turtle> ] .
432
+ earl:assertions [ a earl:Assertion; earl:subject <https://rubygems.org/gems/rdf-turtle> ] .
433
433
  }
434
434
  )
435
435
 
@@ -440,7 +440,7 @@ describe EarlReport do
440
440
  [ a earl:Assertion;
441
441
  earl:assertedBy <http://greggkellogg.net/foaf#me>;
442
442
  earl:test <http://example/manifest.ttl#testeval00>;
443
- earl:subject <http://rubygems.org/gems/rdf-turtle>;
443
+ earl:subject <https://rubygems.org/gems/rdf-turtle>;
444
444
  earl:mode earl:automatic;
445
445
  earl:result [ a earl:TestResult; earl:outcome earl:passed] ] .
446
446
  }
@@ -6,6 +6,7 @@ require 'rspec'
6
6
  require 'rspec/its'
7
7
  require 'simplecov'
8
8
  require 'coveralls'
9
+ require 'amazing_print'
9
10
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
10
11
  SimpleCov::Formatter::HTMLFormatter,
11
12
  Coveralls::SimpleCov::Formatter
@@ -7,10 +7,10 @@
7
7
  @prefix ex: <http://example.org/> .
8
8
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
9
9
 
10
- <http://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
10
+ <https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
11
11
  doap:name "RDF::Turtle" ;
12
12
  doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
13
- doap:license <http://creativecommons.org/licenses/publicdomain/> ;
13
+ doap:license <http://creativecommons.org/publicdomain/zero/1.0/> ;
14
14
  doap:shortdesc "Turtle reader/writer for Ruby."@en ;
15
15
  doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
16
16
  doap:created "2011-08-29"^^xsd:date;
@@ -18,9 +18,9 @@
18
18
  doap:implements <http://www.w3.org/TR/turtle/> ;
19
19
  doap:category <http://dbpedia.org/resource/Resource_Description_Framework>,
20
20
  <http://dbpedia.org/resource/Ruby_(programming_language)> ;
21
- doap:download-page <http://rubygems.org/gems/rdf-turtle> ;
21
+ doap:download-page <https://rubygems.org/gems/rdf-turtle> ;
22
22
  doap:mailing-list <http://lists.w3.org/Archives/Public/public-rdf-ruby/> ;
23
- doap:bug-database <http://github.com/ruby-rdf/rdf-turtle/issues> ;
23
+ doap:bug-database <https://github.com/ruby-rdf/rdf-turtle/issues> ;
24
24
  doap:blog <http://greggkellogg.net/> ;
25
25
  doap:developer <http://greggkellogg.net/foaf#me> ;
26
26
  doap:maintainer <http://greggkellogg.net/foaf#me> ;
@@ -30,4 +30,4 @@
30
30
  dc:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
31
31
  dc:date "2011-08-29"^^xsd:date;
32
32
  dc:creator <http://greggkellogg.net/foaf#me>;
33
- dc:isPartOf <http://rubygems.org/gems/rdf> .
33
+ dc:isPartOf <https://rubygems.org/gems/rdf> .
@@ -7,10 +7,10 @@
7
7
  @prefix ex: <http://example.org/> .
8
8
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
9
9
 
10
- <http://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
10
+ <https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
11
11
  doap:name "RDF::Turtle" ;
12
12
  doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
13
- doap:license <http://creativecommons.org/licenses/publicdomain/> ;
13
+ doap:license <http://creativecommons.org/publicdomain/zero/1.0/> ;
14
14
  doap:shortdesc "Turtle reader/writer for Ruby."@en ;
15
15
  doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
16
16
  doap:created "2011-08-29"^^xsd:date;
@@ -18,9 +18,9 @@
18
18
  doap:implements <http://www.w3.org/TR/turtle/> ;
19
19
  doap:category <http://dbpedia.org/resource/Resource_Description_Framework>,
20
20
  <http://dbpedia.org/resource/Ruby_(programming_language)> ;
21
- doap:download-page <http://rubygems.org/gems/rdf-turtle> ;
21
+ doap:download-page <https://rubygems.org/gems/rdf-turtle> ;
22
22
  doap:mailing-list <http://lists.w3.org/Archives/Public/public-rdf-ruby/> ;
23
- doap:bug-database <http://github.com/ruby-rdf/rdf-turtle/issues> ;
23
+ doap:bug-database <https://github.com/ruby-rdf/rdf-turtle/issues> ;
24
24
  doap:blog <http://greggkellogg.net/> ;
25
25
  doap:developer <http://greggkellogg.net/foaf#me> ;
26
26
  doap:maintainer <http://greggkellogg.net/foaf#me> ;
@@ -30,7 +30,7 @@
30
30
  dc:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
31
31
  dc:date "2011-08-29"^^xsd:date;
32
32
  dc:creator <http://greggkellogg.net/foaf#me>;
33
- dc:isPartOf <http://rubygems.org/gems/rdf> .
33
+ dc:isPartOf <https://rubygems.org/gems/rdf> .
34
34
 
35
35
  <http://greggkellogg.net/foaf#me> a foaf:Person, earl:Assertor;
36
36
  foaf:name "Gregg Kellogg";
@@ -39,7 +39,7 @@
39
39
 
40
40
  [ a earl:Assertion;
41
41
  earl:assertedBy <http://greggkellogg.net/foaf#me>;
42
- earl:subject <http://rubygems.org/gems/rdf-turtle>;
42
+ earl:subject <https://rubygems.org/gems/rdf-turtle>;
43
43
  earl:test <http://example/manifest.ttl#testeval00>;
44
44
  earl:result [
45
45
  a earl:TestResult;
@@ -14,7 +14,7 @@
14
14
 
15
15
  [ a earl:Assertion;
16
16
  earl:assertedBy <http://greggkellogg.net/foaf#me>;
17
- earl:subject <http://rubygems.org/gems/rdf-turtle>;
17
+ earl:subject <https://rubygems.org/gems/rdf-turtle>;
18
18
  earl:test <http://example/manifest.ttl#testeval00>;
19
19
  earl:result [
20
20
  a earl:TestResult;
@@ -7,10 +7,10 @@
7
7
  @prefix ex: <http://example.org/> .
8
8
  @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
9
9
 
10
- <http://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
10
+ <https://rubygems.org/gems/rdf-turtle> a doap:Project, earl:TestSubject, earl:Software ;
11
11
  doap:name "RDF::Turtle" ;
12
12
  doap:homepage <http://ruby-rdf.github.com/rdf-turtle> ;
13
- doap:license <http://creativecommons.org/licenses/publicdomain/> ;
13
+ doap:license <http://creativecommons.org/publicdomain/zero/1.0/> ;
14
14
  doap:shortdesc "Turtle reader/writer for Ruby."@en ;
15
15
  doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
16
16
  doap:created "2011-08-29"^^xsd:date;
@@ -18,9 +18,9 @@
18
18
  doap:implements <http://www.w3.org/TR/turtle/> ;
19
19
  doap:category <http://dbpedia.org/resource/Resource_Description_Framework>,
20
20
  <http://dbpedia.org/resource/Ruby_(programming_language)> ;
21
- doap:download-page <http://rubygems.org/gems/rdf-turtle> ;
21
+ doap:download-page <https://rubygems.org/gems/rdf-turtle> ;
22
22
  doap:mailing-list <http://lists.w3.org/Archives/Public/public-rdf-ruby/> ;
23
- doap:bug-database <http://github.com/ruby-rdf/rdf-turtle/issues> ;
23
+ doap:bug-database <https://github.com/ruby-rdf/rdf-turtle/issues> ;
24
24
  doap:blog <http://greggkellogg.net/> ;
25
25
  doap:developer <http://greggkellogg.net/foaf#me> ;
26
26
  doap:maintainer <http://greggkellogg.net/foaf#me> ;
@@ -30,13 +30,13 @@
30
30
  dc:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en ;
31
31
  dc:date "2011-08-29"^^xsd:date;
32
32
  dc:creator <http://greggkellogg.net/foaf#me>;
33
- dc:isPartOf <http://rubygems.org/gems/rdf> .
33
+ dc:isPartOf <https://rubygems.org/gems/rdf> .
34
34
 
35
35
  <http://greggkellogg.net/foaf#me> a earl:Assertor .
36
36
 
37
37
  [ a earl:Assertion;
38
38
  earl:assertedBy <http://greggkellogg.net/foaf#me>;
39
- earl:subject <http://rubygems.org/gems/rdf-turtle>;
39
+ earl:subject <https://rubygems.org/gems/rdf-turtle>;
40
40
  earl:test <http://example/manifest.ttl#testeval00>;
41
41
  earl:result [
42
42
  a earl:TestResult;
@@ -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='2019-07-09' property='dc:issued'>
77
- 09 July 2019
76
+ <time class='dt-published' datetime='2021-01-19' property='dc:issued'>
77
+ 19 January 2021
78
78
  </time>
79
79
  </h2>
80
80
  <dl>
@@ -231,7 +231,7 @@ Report Generation Software
231
231
  <span class='secno'>2.</span>
232
232
  Test Manifests
233
233
  </h2>
234
- <section id='Description-for-Example-Test-Cases' resource='http://example/manifest.ttl' typeof='Report mf:Manifest'>
234
+ <section id='Description-for-Example-Test-Cases' resource='http://example/manifest.ttl' typeof='mf:Manifest Report'>
235
235
  <h2>
236
236
  <span class='secno'>2.1</span>
237
237
  <span property='dc:title mf:name'>Example Test Cases</span>
@@ -245,14 +245,14 @@ 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 TestCase'>
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>
252
252
  <td class='PASS' property='earl:assertions' typeof='Assertion'>
253
253
  <link href='http://greggkellogg.net/foaf#me' property='earl:assertedBy' />
254
254
  <link href='http://example/manifest.ttl#testeval00' property='earl:test' />
255
- <link href='http://rubygems.org/gems/rdf-turtle' property='earl:subject' />
255
+ <link href='https://rubygems.org/gems/rdf-turtle' property='earl:subject' />
256
256
  <link href='earl:automatic' property='earl:mode' />
257
257
  <span property='earl:result' typeof='TestResult'>
258
258
  <span property='earl:outcome' resource='earl:passed'>
@@ -261,13 +261,12 @@ PASS
261
261
  </span>
262
262
  </td>
263
263
  </tr>
264
- <tr inlist='inlist' rel='mf:entries' resource='_:b1' typeof='http://www.w3.org/ns/rdftest#TestTurtleEval TestCriterion TestCase'>
264
+ <tr inlist='inlist' rel='mf:entries' resource='_:b1' typeof='http://www.w3.org/ns/rdftest#TestTurtleEval TestCase TestCriterion'>
265
265
  <td>
266
266
  <a href='#test_b4d4f9531721bf1a6e4562f27353abd3'>subm-test-01</a>
267
267
  </td>
268
268
  <td class='UNTESTED' property='earl:assertions' typeof='Assertion'>
269
- <link href='_:b1' property='earl:test' />
270
- <link href='http://rubygems.org/gems/rdf-turtle' property='earl:subject' />
269
+ <link href='https://rubygems.org/gems/rdf-turtle' property='earl:subject' />
271
270
  <span property='earl:result' typeof='TestResult'>
272
271
  <span property='earl:outcome' resource='earl:untested'>
273
272
  UNTESTED
@@ -297,14 +296,16 @@ This report was tested using the following test subjects:
297
296
  <dl>
298
297
  <dt id='subj_0'>
299
298
  <span class='secno'>A.1</span>
300
- <a href='http://rubygems.org/gems/rdf-turtle'>
301
- <span about='http://rubygems.org/gems/rdf-turtle' property='doap:name'>RDF::Turtle</span>
299
+ <a href='https://rubygems.org/gems/rdf-turtle'>
300
+ <span about='https://rubygems.org/gems/rdf-turtle' property='doap:name'>RDF::Turtle</span>
302
301
  </a>
303
302
  </dt>
304
- <dd property='earl:testSubjects' resource='http://rubygems.org/gems/rdf-turtle' typeof='Software TestSubject doap:Project'>
303
+ <dd property='earl:testSubjects' resource='https://rubygems.org/gems/rdf-turtle' typeof='Software TestSubject doap:Project'>
305
304
  <dl>
306
305
  <dt>Description</dt>
307
306
  <dd lang='en' property='doap:description'>RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.</dd>
307
+ <dt>Release</dt>
308
+ <dd property='doap:release'><span property='doap:revision'>unknown</span></dd>
308
309
  <dt>Programming Language</dt>
309
310
  <dd property='doap:programming-language'>Ruby</dd>
310
311
  <dt>Home Page</dt>
@@ -315,7 +316,7 @@ http://ruby-rdf.github.com/rdf-turtle
315
316
  </dd>
316
317
  <dt>Developer</dt>
317
318
  <dd rel='doap:developer'>
318
- <div resource='http://greggkellogg.net/foaf#me' typeof='Assertor foaf:Person'>
319
+ <div resource='http://greggkellogg.net/foaf#me' typeof='foaf:Person Assertor'>
319
320
  <a href='http://greggkellogg.net/foaf#me'>
320
321
  <span property='foaf:name'>Gregg Kellogg</span>
321
322
  </a>
@@ -387,21 +388,20 @@ Test
387
388
  </div>
388
389
  </dl>
389
390
  </section>
390
- <section class='appendix' id='report-generation-software' property='earl:generatedBy' resource='http://rubygems.org/gems/earl-report' typeof='Software doap:Project'>
391
+ <section class='appendix' id='report-generation-software' property='earl:generatedBy' resource='https://rubygems.org/gems/earl-report' typeof='Software doap:Project'>
391
392
  <h2>
392
393
  <span class='secno'>D.</span>
393
394
  Report Generation Software
394
395
  </h2>
395
396
  <p>
396
397
  This report generated by
397
- <span property='doap:name'><a href='http://rubygems.org/gems/earl-report'>earl-report</a></span>
398
+ <span property='doap:name'><a href='https://rubygems.org/gems/earl-report'>earl-report</a></span>
398
399
  <meta content='Earl Report summary generator' property='doap:shortdesc' />
399
400
  <meta content='EarlReport generates HTML+RDFa rollups of multiple EARL reports' property='doap:description' />
400
401
  version
401
- <span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.4.6' typeof='doap:Version'>
402
- <span property='doap:revision'>0.4.6</span>
403
- <meta content='earl-report-0.4.6' property='doap:name' />
404
- <meta datatype='xsd:date' property='doap:created' />
402
+ <span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.5.1' typeof='doap:Version'>
403
+ <span property='doap:revision'>0.5.1</span>
404
+ <meta content='earl-report-0.5.1' property='doap:name' />
405
405
  </span>
406
406
  an
407
407
  <a href='http://unlicense.org' property='doap:license'>Unlicensed</a>
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "@context": {
3
+ "@version": 1.1,
3
4
  "@vocab": "http://www.w3.org/ns/earl#",
4
5
  "foaf:homepage": {
5
6
  "@type": "@id"
@@ -107,72 +108,105 @@
107
108
  "doap:Project"
108
109
  ],
109
110
  "name": "Turtle Test Results",
110
- "bibRef": "[[TURTLE]]",
111
111
  "generatedBy": {
112
- "@id": "http://rubygems.org/gems/earl-report",
112
+ "@id": "https://rubygems.org/gems/earl-report",
113
113
  "@type": [
114
114
  "Software",
115
115
  "doap:Project"
116
116
  ],
117
- "shortdesc": "Earl Report summary generator",
118
117
  "name": "earl-report",
118
+ "shortdesc": "Earl Report summary generator",
119
+ "doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
120
+ "license": "http://unlicense.org",
121
+ "language": "Ruby",
119
122
  "developer": [
120
123
  {
121
124
  "@id": "http://greggkellogg.net/foaf#me",
122
125
  "@type": [
123
- "Assertor",
124
- "foaf:Person"
126
+ "foaf:Person",
127
+ "Assertor"
125
128
  ],
126
129
  "foaf:name": "Gregg Kellogg",
127
130
  "foaf:homepage": "http://greggkellogg.net/"
128
131
  }
129
132
  ],
130
- "doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
131
- "language": "Ruby",
133
+ "homepage": "https://github.com/gkellogg/earl-report",
132
134
  "release": {
133
- "@id": "https://github.com/gkellogg/earl-report/tree/0.4.6",
135
+ "@id": "https://github.com/gkellogg/earl-report/tree/0.5.1",
134
136
  "@type": "doap:Version",
135
- "name": "earl-report-0.4.6",
137
+ "name": "earl-report-0.5.1",
136
138
  "doap:created": {
137
- "@value": "2017-07-02",
138
- "@type": "http://www.w3.org/2001/XMLSchema#date"
139
+ "@type": "http://www.w3.org/2001/XMLSchema#date",
140
+ "@value": "2020-04-11"
139
141
  },
140
- "revision": "0.4.6"
141
- },
142
- "homepage": "https://github.com/gkellogg/earl-report",
143
- "license": "http://unlicense.org"
142
+ "revision": "0.5.1"
143
+ }
144
144
  },
145
+ "bibRef": "[[TURTLE]]",
146
+ "testSubjects": [
147
+ {
148
+ "@id": "https://rubygems.org/gems/rdf-turtle",
149
+ "@type": [
150
+ "Software",
151
+ "TestSubject",
152
+ "doap:Project"
153
+ ],
154
+ "name": "RDF::Turtle",
155
+ "doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
156
+ "language": "Ruby",
157
+ "developer": [
158
+ {
159
+ "@id": "http://greggkellogg.net/foaf#me",
160
+ "@type": [
161
+ "foaf:Person",
162
+ "Assertor"
163
+ ],
164
+ "foaf:name": "Gregg Kellogg",
165
+ "foaf:homepage": "http://greggkellogg.net/"
166
+ }
167
+ ],
168
+ "homepage": "http://ruby-rdf.github.com/rdf-turtle",
169
+ "release": {
170
+ "@id": "_:b2",
171
+ "revision": "unknown"
172
+ }
173
+ }
174
+ ],
175
+ "assertions": [
176
+ "/Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl"
177
+ ],
145
178
  "entries": [
146
179
  {
147
180
  "@id": "http://example/manifest.ttl",
148
181
  "@type": [
149
- "Report",
150
- "mf:Manifest"
182
+ "mf:Manifest",
183
+ "Report"
151
184
  ],
152
185
  "rdfs:comment": "Description for Example Test Cases",
186
+ "title": "Example Test Cases",
153
187
  "entries": [
154
188
  {
155
189
  "@id": "http://example/manifest.ttl#testeval00",
156
190
  "@type": [
157
191
  "http://www.w3.org/ns/rdftest#TestTurtleEval",
158
- "TestCriterion",
159
- "TestCase"
192
+ "TestCase",
193
+ "TestCriterion"
160
194
  ],
161
195
  "testResult": "http://example/test-00.out",
162
196
  "rdfs:comment": "Blank subject",
163
197
  "assertions": [
164
198
  {
165
- "@id": "_:b3",
199
+ "@id": "_:b4",
166
200
  "@type": "Assertion",
167
201
  "test": "http://example/manifest.ttl#testeval00",
168
- "mode": "earl:automatic",
169
- "subject": "http://rubygems.org/gems/rdf-turtle",
170
202
  "assertedBy": "http://greggkellogg.net/foaf#me",
203
+ "subject": "https://rubygems.org/gems/rdf-turtle",
171
204
  "result": {
172
- "@id": "_:b4",
205
+ "@id": "_:b5",
173
206
  "@type": "TestResult",
174
207
  "outcome": "earl:passed"
175
- }
208
+ },
209
+ "mode": "earl:automatic"
176
210
  }
177
211
  ],
178
212
  "title": "subm-test-00",
@@ -182,8 +216,8 @@
182
216
  "@id": "_:b0",
183
217
  "@type": [
184
218
  "http://www.w3.org/ns/rdftest#TestTurtleEval",
185
- "TestCriterion",
186
- "TestCase"
219
+ "TestCase",
220
+ "TestCriterion"
187
221
  ],
188
222
  "testResult": "http://example/test-01.out",
189
223
  "rdfs:comment": "@prefix and qnames",
@@ -192,9 +226,9 @@
192
226
  "@id": "_:b1",
193
227
  "@type": "Assertion",
194
228
  "test": "_:b0",
195
- "subject": "http://rubygems.org/gems/rdf-turtle",
229
+ "subject": "https://rubygems.org/gems/rdf-turtle",
196
230
  "result": {
197
- "@id": "_:b2",
231
+ "@id": "_:b3",
198
232
  "@type": "TestResult",
199
233
  "outcome": "earl:untested"
200
234
  },
@@ -204,36 +238,7 @@
204
238
  "title": "subm-test-01",
205
239
  "testAction": "http://example/test-01.ttl"
206
240
  }
207
- ],
208
- "title": "Example Test Cases"
209
- }
210
- ],
211
- "assertions": [
212
- "/Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl"
213
- ],
214
- "testSubjects": [
215
- {
216
- "@id": "http://rubygems.org/gems/rdf-turtle",
217
- "@type": [
218
- "Software",
219
- "TestSubject",
220
- "doap:Project"
221
- ],
222
- "name": "RDF::Turtle",
223
- "developer": [
224
- {
225
- "@id": "http://greggkellogg.net/foaf#me",
226
- "@type": [
227
- "Assertor",
228
- "foaf:Person"
229
- ],
230
- "foaf:name": "Gregg Kellogg",
231
- "foaf:homepage": "http://greggkellogg.net/"
232
- }
233
- ],
234
- "homepage": "http://ruby-rdf.github.com/rdf-turtle",
235
- "language": "Ruby",
236
- "doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."
241
+ ]
237
242
  }
238
243
  ]
239
244
  }
@@ -13,20 +13,20 @@
13
13
  doap:name "Turtle Test Results";
14
14
  mf:entries (<http://example/manifest.ttl>);
15
15
  earl:assertions </Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl>;
16
- earl:generatedBy <http://rubygems.org/gems/earl-report>;
17
- earl:testSubjects <http://rubygems.org/gems/rdf-turtle> .
16
+ earl:generatedBy <https://rubygems.org/gems/earl-report>;
17
+ earl:testSubjects <https://rubygems.org/gems/rdf-turtle> .
18
18
 
19
19
  # Manifests
20
20
 
21
- <http://example/manifest.ttl> a earl:Report,
22
- mf:Manifest;
21
+ <http://example/manifest.ttl> a mf:Manifest,
22
+ earl:Report;
23
23
  rdfs:comment "Description for Example Test Cases";
24
- mf:entries (<http://example/manifest.ttl#testeval00> _:g70364851762280);
24
+ mf:entries (<http://example/manifest.ttl#testeval00> _:g487980);
25
25
  mf:name "Example Test Cases" .
26
26
 
27
27
  <http://example/manifest.ttl#testeval00> a <http://www.w3.org/ns/rdftest#TestTurtleEval>,
28
- earl:TestCriterion,
29
- earl:TestCase;
28
+ earl:TestCase,
29
+ earl:TestCriterion;
30
30
  rdfs:comment "Blank subject";
31
31
  mf:action <http://example/test-00.ttl>;
32
32
  mf:name "subm-test-00";
@@ -39,13 +39,13 @@
39
39
  a earl:TestResult;
40
40
  earl:outcome earl:passed
41
41
  ];
42
- earl:subject <http://rubygems.org/gems/rdf-turtle>;
42
+ earl:subject <https://rubygems.org/gems/rdf-turtle>;
43
43
  earl:test <http://example/manifest.ttl#testeval00>
44
44
  ] .
45
45
 
46
- _:g70364851762280 a <http://www.w3.org/ns/rdftest#TestTurtleEval>,
47
- earl:TestCriterion,
48
- earl:TestCase;
46
+ _:g487980 a <http://www.w3.org/ns/rdftest#TestTurtleEval>,
47
+ earl:TestCase,
48
+ earl:TestCriterion;
49
49
  rdfs:comment "@prefix and qnames";
50
50
  mf:action <http://example/test-01.ttl>;
51
51
  mf:name "subm-test-01";
@@ -56,29 +56,30 @@ _:g70364851762280 a <http://www.w3.org/ns/rdftest#TestTurtleEval>,
56
56
  a earl:TestResult;
57
57
  earl:outcome earl:untested
58
58
  ];
59
- earl:subject <http://rubygems.org/gems/rdf-turtle>;
60
- earl:test _:g70364851762280
59
+ earl:subject <https://rubygems.org/gems/rdf-turtle>;
60
+ earl:test _:g487980
61
61
  ] .
62
62
 
63
63
  # Test Subjects
64
64
 
65
- <http://rubygems.org/gems/rdf-turtle> a earl:Software,
65
+ <https://rubygems.org/gems/rdf-turtle> a earl:Software,
66
66
  earl:TestSubject,
67
67
  doap:Project;
68
68
  doap:description "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite."@en;
69
69
  doap:developer <http://greggkellogg.net/foaf#me>;
70
70
  doap:homepage <http://ruby-rdf.github.com/rdf-turtle>;
71
71
  doap:name "RDF::Turtle";
72
- doap:programming-language "Ruby" .
72
+ doap:programming-language "Ruby";
73
+ doap:release [doap:revision "unknown"] .
73
74
 
74
- <http://greggkellogg.net/foaf#me> a earl:Assertor,
75
- foaf:Person;
75
+ <http://greggkellogg.net/foaf#me> a foaf:Person,
76
+ earl:Assertor;
76
77
  foaf:homepage <http://greggkellogg.net/>;
77
78
  foaf:name "Gregg Kellogg" .
78
79
 
79
80
  # Report Generation Software
80
81
 
81
- <http://rubygems.org/gems/earl-report> a earl:Software,
82
+ <https://rubygems.org/gems/earl-report> a earl:Software,
82
83
  doap:Project;
83
84
  doap:description "EarlReport generates HTML+RDFa rollups of multiple EARL reports"@en;
84
85
  doap:developer <http://greggkellogg.net/foaf#me>;
@@ -86,10 +87,10 @@ _:g70364851762280 a <http://www.w3.org/ns/rdftest#TestTurtleEval>,
86
87
  doap:license <http://unlicense.org>;
87
88
  doap:name "earl-report";
88
89
  doap:programming-language "Ruby";
89
- doap:release <https://github.com/gkellogg/earl-report/tree/0.4.6>;
90
+ doap:release <https://github.com/gkellogg/earl-report/tree/0.5.1>;
90
91
  doap:shortdesc "Earl Report summary generator"@en .
91
92
 
92
- <https://github.com/gkellogg/earl-report/tree/0.4.6> a doap:Version;
93
- doap:created "2017-07-02"^^xsd:date;
94
- doap:name "earl-report-0.4.6";
95
- doap:revision "0.4.6" .
93
+ <https://github.com/gkellogg/earl-report/tree/0.5.1> a doap:Version;
94
+ doap:created "2020-04-11"^^xsd:date;
95
+ doap:name "earl-report-0.5.1";
96
+ doap:revision "0.5.1" .
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.7
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Kellogg
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-09 00:00:00.000000000 Z
11
+ date: 2021-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkeddata
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '3.0'
19
+ version: '3.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '3.0'
26
+ version: '3.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: haml
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '5.0'
33
+ version: '5.2'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '5.0'
40
+ version: '5.2'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: kramdown
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.14'
47
+ version: '2.3'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.14'
54
+ version: '2.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: nokogiri
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +66,34 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.10'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rexml
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.2'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.2'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '3.8'
89
+ version: '3.9'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '3.8'
96
+ version: '3.9'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rspec-its
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +142,14 @@ dependencies:
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '12.3'
145
+ version: '13.0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '12.3'
152
+ version: '13.0'
139
153
  description: EarlReport generates HTML+RDFa rollups of multiple EARL reports.
140
154
  email: gregg@greggkellogg.net
141
155
  executables:
@@ -162,11 +176,11 @@ files:
162
176
  - spec/test-files/results.ttl
163
177
  - spec/test-files/test-00.out
164
178
  - spec/test-files/test-00.ttl
165
- homepage: http://github.com/gkellogg/earl-report
179
+ homepage: https://github.com/gkellogg/earl-report
166
180
  licenses:
167
181
  - Unlicense
168
182
  metadata: {}
169
- post_install_message:
183
+ post_install_message:
170
184
  rdoc_options: []
171
185
  require_paths:
172
186
  - lib
@@ -181,21 +195,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
195
  - !ruby/object:Gem::Version
182
196
  version: '0'
183
197
  requirements: []
184
- rubygems_version: 3.0.3
185
- signing_key:
198
+ rubygems_version: 3.2.3
199
+ signing_key:
186
200
  specification_version: 4
187
201
  summary: Earl Report summary generator
188
202
  test_files:
189
- - spec/spec_helper.rb
190
203
  - spec/earl_report_spec.rb
204
+ - spec/spec_helper.rb
205
+ - spec/test-files/doap.ttl
191
206
  - spec/test-files/foaf.ttl
192
207
  - spec/test-files/manifest.ttl
193
- - spec/test-files/doap.ttl
194
- - spec/test-files/results.jsonld
195
- - spec/test-files/results.ttl
196
208
  - spec/test-files/report-complete.ttl
197
209
  - spec/test-files/report-no-doap.ttl
198
- - spec/test-files/results.html
199
210
  - spec/test-files/report-no-foaf.ttl
200
- - spec/test-files/test-00.ttl
211
+ - spec/test-files/results.html
212
+ - spec/test-files/results.jsonld
213
+ - spec/test-files/results.ttl
201
214
  - spec/test-files/test-00.out
215
+ - spec/test-files/test-00.ttl