earl-report 0.4.9 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e76543b490f30df2542076f3beb58514e02346c964e716aed470ea1f1dd1dcac
4
- data.tar.gz: e03701faad62e4ea150911a1bdca0a875839276ddc28604e1066a5a532ac0509
3
+ metadata.gz: 49a823f243638c7162903264e52f226f6f02e8e85943f1a4cd97a12594b080ab
4
+ data.tar.gz: b4855bcd3dbddc0e3b8eff04dbfd1ff8e8ed062827878471268e11b0fd509dbb
5
5
  SHA512:
6
- metadata.gz: 7a5f474b6b1fe4d1f1c259d93048b2a2299dd56ff88fd82d215f8f55cf6f51c20706ccac8189bf6d250d16a0a1c5f614d90c30f6f0212c2beaab65ddf13a03b2
7
- data.tar.gz: fa242658e76b29269cf820834f83df03b6bef2d3b30e018d420ace79dd0b2b0afdde97708fb8183a3afbbce397f9339a7920795cbe697b2eeeef15035d9aaf3d
6
+ metadata.gz: c971edc43f724554263423eb192fde98aa810cf2eaed21a5349f3199e765550087e8ce34ee0e8191c073b075415cf49f40ae5905b41bcc5954b0221fb7667c36
7
+ data.tar.gz: bf787b883a24228aab04490fb93b32e26b9763dd67e00565f61040b0a1bfd0e1bef4a41e91353182c685c5bf7913e8c5d17a141feeac691abfb7d3b36695bc91
data/README.md CHANGED
@@ -34,6 +34,11 @@ of the reported software, in the following form:
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,
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.9
1
+ 0.5.0
@@ -33,13 +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 ?revision ?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 [ doap:revision ?revision] .}
42
+ OPTIONAL { ?uri doap:release ?release . }
43
+ OPTIONAL { ?release doap:revision ?revision .}
43
44
  OPTIONAL { ?developer a ?devType .}
44
45
  OPTIONAL { ?developer foaf:name ?devName .}
45
46
  OPTIONAL { ?developer foaf:homepage ?devHomepage .}
@@ -220,7 +221,14 @@ class EarlReport
220
221
  test_resources = tests.values.map {|v| v[:uri]}.uniq.compact
221
222
  subjects = {}
222
223
 
223
- 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
+
224
232
  # Read test assertion files into assertion graph
225
233
  files.flatten.each do |file|
226
234
  status "read #{file}"
@@ -237,10 +245,10 @@ class EarlReport
237
245
 
238
246
  # Load DOAP definitions
239
247
  unless solution[:name] # not loaded
240
- status "read doap description for #{subject}"
248
+ status " read doap description for #{subject}"
241
249
  begin
242
250
  doap_graph = RDF::Graph.load(subject)
243
- status " loaded #{doap_graph.count} triples"
251
+ status " loaded #{doap_graph.count} triples"
244
252
  file_graph << doap_graph.to_a
245
253
  rescue
246
254
  warn "\nfailed to load DOAP from #{subject}: #{$!}"
@@ -260,10 +268,10 @@ class EarlReport
260
268
  if !solutions.first[:developer]
261
269
  warn "\nNo developer identified for #{solutions.first[:uri]}"
262
270
  elsif !solutions.first[:devName]
263
- status "read description for developer #{solutions.first[:developer].inspect}"
271
+ status " read description for developer #{solutions.first[:developer].inspect}"
264
272
  begin
265
273
  foaf_graph = RDF::Graph.load(solutions.first[:developer])
266
- status " loaded #{foaf_graph.count} triples"
274
+ status " loaded #{foaf_graph.count} triples"
267
275
  file_graph << foaf_graph.to_a
268
276
  # Reload solutions
269
277
  solutions = SPARQL.execute(TEST_SUBJECT_QUERY, file_graph)
@@ -272,6 +280,7 @@ class EarlReport
272
280
  end
273
281
  end
274
282
 
283
+ release = nil
275
284
  solutions.each do |solution|
276
285
  # Kepp track of subjects
277
286
  subjects[solution[:uri]] = RDF::URI(file)
@@ -294,59 +303,55 @@ class EarlReport
294
303
  graph << RDF::Statement(solution[:developer], RDF::Vocab::FOAF.name, devName) if devName
295
304
  graph << RDF::Statement(solution[:developer], RDF::Vocab::FOAF.homepage, solution[:devHomepage]) if solution[:devHomepage]
296
305
 
297
- rev = RDF::Node.new
298
- graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.release, rev)
299
- graph << RDF::Statement(rev, RDF::Vocab::DOAP.revision, (solution[:revision] || "unknown"))
306
+ release ||= solution[:release] || RDF::Node.new
307
+ graph << RDF::Statement(solution[:uri], RDF::Vocab::DOAP.release, release)
308
+ graph << RDF::Statement(release, RDF::Vocab::DOAP.revision, (solution[:revision] || "unknown"))
300
309
  end
301
310
 
302
- assertion_graph << file_graph
303
- end
304
- end
311
+ # Make sure that each assertion matches a test and add reference from test to assertion
312
+ found_solutions = false
313
+ subject = nil
305
314
 
306
- # Make sure that each assertion matches a test and add reference from test to assertion
307
- found_solutions = {}
315
+ status " query assertions"
316
+ SPARQL.execute(ASSERTION_QUERY, file_graph).each do |solution|
317
+ subject = solution[:subject]
318
+ unless tests[solution[:test]]
319
+ assertion_stats["Skipped"] = assertion_stats["Skipped"].to_i + 1
320
+ $stderr.puts "Skipping result for #{solution[:test]} for #{subject}, which is not defined in manifests"
321
+ next
322
+ end
323
+ unless subjects[subject]
324
+ assertion_stats["Missing Subject"] = assertion_stats["Missing Subject"].to_i + 1
325
+ $stderr.puts "No test result subject found for #{subject}: in #{subjects.keys.join(', ')}"
326
+ next
327
+ end
328
+ found_solutions ||= true
329
+ assertion_stats["Found"] = assertion_stats["Found"].to_i + 1
308
330
 
309
- # Initialize test assertions with an entry for each test subject
310
- test_assertion_lists = {}
311
- test_assertion_lists = tests.keys.inject({}) do |memo, test|
312
- memo.merge(test => Array.new(subjects.length))
313
- end
331
+ # Add this solution at the appropriate index within that list
332
+ ndx = subjects.keys.find_index(subject)
333
+ ary = test_assertion_lists[solution[:test]]
314
334
 
315
- status "query assertions"
316
- assertion_stats = {}
317
- SPARQL.execute(ASSERTION_QUERY, assertion_graph).each do |solution|
318
- subject = solution[:subject]
319
- unless tests[solution[:test]]
320
- assertion_stats["Skipped"] = assertion_stats["Skipped"].to_i + 1
321
- $stderr.puts "Skipping result for #{solution[:test]} for #{subject}, which is not defined in manifests"
322
- next
323
- end
324
- unless subjects[subject]
325
- assertion_stats["Missing Subject"] = assertion_stats["Missing Subject"].to_i + 1
326
- $stderr.puts "No test result subject found for #{subject}: in #{subjects.keys.join(', ')}"
327
- next
335
+ ary[ndx] = a = RDF::Node.new
336
+ graph << RDF::Statement(a, RDF.type, EARL.Assertion)
337
+ graph << RDF::Statement(a, EARL.subject, subject)
338
+ graph << RDF::Statement(a, EARL.test, solution[:test])
339
+ graph << RDF::Statement(a, EARL.assertedBy, solution[:by])
340
+ graph << RDF::Statement(a, EARL.mode, solution[:mode]) if solution[:mode]
341
+ r = RDF::Node.new
342
+ graph << RDF::Statement(a, EARL.result, r)
343
+ graph << RDF::Statement(r, RDF.type, EARL.TestResult)
344
+ graph << RDF::Statement(r, EARL.outcome, solution[:outcome])
345
+ end
346
+
347
+ # See if subject did not report results, which may indicate a formatting error in the EARL source
348
+ $stderr.puts "No results found for #{subject} using #{ASSERTION_QUERY}" unless found_solutions
328
349
  end
329
- found_solutions[subject] = true
330
- assertion_stats["Found"] = assertion_stats["Found"].to_i + 1
331
-
332
- # Add this solution at the appropriate index within that list
333
- ndx = subjects.keys.find_index(subject)
334
- ary = test_assertion_lists[solution[:test]] ||= []
335
-
336
- ary[ndx] = a = RDF::Node.new
337
- graph << RDF::Statement(a, RDF.type, EARL.Assertion)
338
- graph << RDF::Statement(a, EARL.subject, subject)
339
- graph << RDF::Statement(a, EARL.test, solution[:test])
340
- graph << RDF::Statement(a, EARL.assertedBy, solution[:by])
341
- graph << RDF::Statement(a, EARL.mode, solution[:mode]) if solution[:mode]
342
- r = RDF::Node.new
343
- graph << RDF::Statement(a, EARL.result, r)
344
- graph << RDF::Statement(r, RDF.type, EARL.TestResult)
345
- graph << RDF::Statement(r, EARL.outcome, solution[:outcome])
346
350
  end
347
351
 
348
352
  # Add ordered assertions for each test
349
353
  test_assertion_lists.each do |test, ary|
354
+ ary[subjects.length - 1] ||= nil # extend for all subjects
350
355
  # Fill any missing entries with an untested outcome
351
356
  ary.each_with_index do |a, ndx|
352
357
  unless a
@@ -368,11 +373,6 @@ class EarlReport
368
373
 
369
374
  assertion_stats.each {|stat, count| status("Assertions #{stat}: #{count}")}
370
375
 
371
- # See if any subject did not report results, which may indicate a formatting error in the EARL source
372
- subjects.reject {|s| found_solutions[s]}.each do |sub|
373
- $stderr.puts "No results found for #{sub} using #{ASSERTION_QUERY}"
374
- end
375
-
376
376
  # Add report wrapper to graph
377
377
  ttl = %(
378
378
  @prefix dc: <http://purl.org/dc/terms/> .
@@ -482,9 +482,11 @@ class EarlReport
482
482
  @json_hash ||= begin
483
483
  # Customized JSON-LD output
484
484
  result = JSON::LD::API.fromRDF(graph) do |expanded|
485
- framed = JSON::LD::API.frame(expanded, TEST_FRAME, expanded: true, embed: '@never')
485
+ framed = JSON::LD::API.frame(expanded, TEST_FRAME,
486
+ expanded: true,
487
+ embed: '@never',
488
+ pruneBlankNodeIdentifiers: false)
486
489
  # Reorder test subjects by @id
487
- #require 'byebug'; byebug
488
490
  framed['testSubjects'] = framed['testSubjects'].sort_by {|t| t['@id']}
489
491
 
490
492
  # Reorder test assertions to make them consistent with subject order
@@ -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']}
@@ -443,10 +445,10 @@
443
445
  %p{property: "dc:description rdfs:comment"}<
444
446
  ~ CGI.escapeHTML test['description'].to_s
445
447
  %pre{class: "example actionDoc", property: "mf:action", resource: test['testAction'], title: "#{test['title']} Input"}<
446
- ~ 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"
447
449
  - if test['testResult']
448
450
  %pre{class: "example resultDoc", property: "mf:result", resource: test['testResult'], title: "#{test['title']} Result"}<
449
- ~ 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"
450
452
  %section.appendix#report-generation-software{property: "earl:generatedBy", resource: tests['generatedBy']['@id'], typeof: tests['generatedBy']['@type'].join(' ')}
451
453
  %h2
452
454
  %span.secno="D."
@@ -464,7 +466,8 @@
464
466
  %span{property: "doap:release", resource: rel['@id'], typeof: 'doap:Version'}
465
467
  %span{property: "doap:revision"}<=rel['revision']
466
468
  %meta{property: "doap:name", content: rel['name']}
467
- %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"}
468
471
  an
469
472
  %a{property: "doap:license", href: doap['license']}<="Unlicensed"
470
473
  %span{property: "doap:programming-language"}<="Ruby"
@@ -6,6 +6,7 @@ require 'rspec'
6
6
  require 'rspec/its'
7
7
  require 'simplecov'
8
8
  require 'coveralls'
9
+ require 'awesome_print'
9
10
  SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
10
11
  SimpleCov::Formatter::HTMLFormatter,
11
12
  Coveralls::SimpleCov::Formatter
@@ -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='2020-02-21' property='dc:issued'>
77
- 21 February 2020
76
+ <time class='dt-published' datetime='2020-04-10' property='dc:issued'>
77
+ 10 April 2020
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,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='TestCriterion http://www.w3.org/ns/rdftest#TestTurtleEval TestCase'>
248
+ <tr inlist='inlist' rel='mf:entries' resource='http://example/manifest.ttl#testeval00' typeof='TestCase TestCriterion http://www.w3.org/ns/rdftest#TestTurtleEval'>
249
249
  <td>
250
250
  <a href='#test_1fdd82ac4caf30510cabfdb0a5987ddd'>subm-test-00</a>
251
251
  </td>
@@ -261,12 +261,11 @@ PASS
261
261
  </span>
262
262
  </td>
263
263
  </tr>
264
- <tr inlist='inlist' rel='mf:entries' resource='_:b5' typeof='TestCriterion http://www.w3.org/ns/rdftest#TestTurtleEval TestCase'>
264
+ <tr inlist='inlist' rel='mf:entries' resource='_:b4' typeof='TestCase TestCriterion http://www.w3.org/ns/rdftest#TestTurtleEval'>
265
265
  <td>
266
- <a href='#test_afa00d7d18419c220355daf1fd144bee'>subm-test-01</a>
266
+ <a href='#test_c3a45336bb3ff1ac310bee3349a6ace7'>subm-test-01</a>
267
267
  </td>
268
268
  <td class='UNTESTED' property='earl:assertions' typeof='Assertion'>
269
- <link href='_:b5' property='earl:test' />
270
269
  <link href='http://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'>
@@ -301,7 +300,7 @@ This report was tested using the following test subjects:
301
300
  <span about='http://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='TestSubject doap:Project Software'>
303
+ <dd property='earl:testSubjects' resource='http://rubygems.org/gems/rdf-turtle' typeof='doap:Project TestSubject Software'>
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>
@@ -377,11 +376,11 @@ Test
377
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>
378
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>
379
378
  </dd>
380
- <dt id='test_afa00d7d18419c220355daf1fd144bee' resource='_:b5'>
379
+ <dt id='test_c3a45336bb3ff1ac310bee3349a6ace7' resource='_:b4'>
381
380
  Test
382
381
  <span property='dc:title mf:name'>subm-test-01</span>
383
382
  </dt>
384
- <dd resource='_:b5'>
383
+ <dd resource='_:b4'>
385
384
  <p property='dc:description rdfs:comment'></p>
386
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>
387
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>
@@ -400,10 +399,9 @@ This report generated by
400
399
  <meta content='Earl Report summary generator' property='doap:shortdesc' />
401
400
  <meta content='EarlReport generates HTML+RDFa rollups of multiple EARL reports' property='doap:description' />
402
401
  version
403
- <span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.4.8' typeof='doap:Version'>
404
- <span property='doap:revision'>0.4.8</span>
405
- <meta content='earl-report-0.4.8' property='doap:name' />
406
- <meta datatype='xsd:date' property='doap:created' />
402
+ <span property='doap:release' resource='https://github.com/gkellogg/earl-report/tree/0.4.9' typeof='doap:Version'>
403
+ <span property='doap:revision'>0.4.9</span>
404
+ <meta content='earl-report-0.4.9' property='doap:name' />
407
405
  </span>
408
406
  an
409
407
  <a href='http://unlicense.org' property='doap:license'>Unlicensed</a>
@@ -108,137 +108,137 @@
108
108
  "Software"
109
109
  ],
110
110
  "name": "Turtle Test Results",
111
+ "assertions": [
112
+ "/Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl"
113
+ ],
114
+ "generatedBy": {
115
+ "@id": "http://rubygems.org/gems/earl-report",
116
+ "@type": [
117
+ "doap:Project",
118
+ "Software"
119
+ ],
120
+ "release": {
121
+ "@id": "https://github.com/gkellogg/earl-report/tree/0.4.9",
122
+ "@type": "doap:Version",
123
+ "name": "earl-report-0.4.9",
124
+ "doap:created": {
125
+ "@value": "2020-04-01",
126
+ "@type": "http://www.w3.org/2001/XMLSchema#date"
127
+ },
128
+ "revision": "0.4.9"
129
+ },
130
+ "name": "earl-report",
131
+ "homepage": "https://github.com/gkellogg/earl-report",
132
+ "developer": [
133
+ {
134
+ "@id": "http://greggkellogg.net/foaf#me",
135
+ "@type": [
136
+ "Assertor",
137
+ "foaf:Person"
138
+ ],
139
+ "foaf:homepage": "http://greggkellogg.net/",
140
+ "foaf:name": "Gregg Kellogg"
141
+ }
142
+ ],
143
+ "license": "http://unlicense.org",
144
+ "doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
145
+ "shortdesc": "Earl Report summary generator",
146
+ "language": "Ruby"
147
+ },
148
+ "testSubjects": [
149
+ {
150
+ "@id": "http://rubygems.org/gems/rdf-turtle",
151
+ "@type": [
152
+ "doap:Project",
153
+ "TestSubject",
154
+ "Software"
155
+ ],
156
+ "release": {
157
+ "@id": "_:b4",
158
+ "revision": "unknown"
159
+ },
160
+ "name": "RDF::Turtle",
161
+ "homepage": "http://ruby-rdf.github.com/rdf-turtle",
162
+ "developer": [
163
+ {
164
+ "@id": "http://greggkellogg.net/foaf#me",
165
+ "@type": [
166
+ "Assertor",
167
+ "foaf:Person"
168
+ ],
169
+ "foaf:homepage": "http://greggkellogg.net/",
170
+ "foaf:name": "Gregg Kellogg"
171
+ }
172
+ ],
173
+ "doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
174
+ "language": "Ruby"
175
+ }
176
+ ],
177
+ "bibRef": "[[TURTLE]]",
111
178
  "entries": [
112
179
  {
113
180
  "@id": "http://example/manifest.ttl",
114
181
  "@type": [
115
- "Report",
116
- "mf:Manifest"
182
+ "mf:Manifest",
183
+ "Report"
117
184
  ],
118
- "title": "Example Test Cases",
119
185
  "rdfs:comment": "Description for Example Test Cases",
186
+ "title": "Example Test Cases",
120
187
  "entries": [
121
188
  {
122
189
  "@id": "http://example/manifest.ttl#testeval00",
123
190
  "@type": [
191
+ "TestCase",
124
192
  "TestCriterion",
125
- "http://www.w3.org/ns/rdftest#TestTurtleEval",
126
- "TestCase"
193
+ "http://www.w3.org/ns/rdftest#TestTurtleEval"
127
194
  ],
128
- "title": "subm-test-00",
129
195
  "rdfs:comment": "Blank subject",
130
- "testAction": "http://example/test-00.ttl",
196
+ "title": "subm-test-00",
131
197
  "assertions": [
132
198
  {
199
+ "@id": "_:b2",
133
200
  "@type": "Assertion",
134
201
  "mode": "earl:automatic",
202
+ "test": "http://example/manifest.ttl#testeval00",
203
+ "subject": "http://rubygems.org/gems/rdf-turtle",
135
204
  "result": {
205
+ "@id": "_:b1",
136
206
  "@type": "TestResult",
137
207
  "outcome": "earl:passed"
138
208
  },
139
- "test": "http://example/manifest.ttl#testeval00",
140
- "assertedBy": "http://greggkellogg.net/foaf#me",
141
- "subject": "http://rubygems.org/gems/rdf-turtle"
209
+ "assertedBy": "http://greggkellogg.net/foaf#me"
142
210
  }
143
211
  ],
212
+ "testAction": "http://example/test-00.ttl",
144
213
  "testResult": "http://example/test-00.out"
145
214
  },
146
215
  {
147
- "@id": "_:b1",
216
+ "@id": "_:b0",
148
217
  "@type": [
218
+ "TestCase",
149
219
  "TestCriterion",
150
- "http://www.w3.org/ns/rdftest#TestTurtleEval",
151
- "TestCase"
220
+ "http://www.w3.org/ns/rdftest#TestTurtleEval"
152
221
  ],
153
- "title": "subm-test-01",
154
222
  "rdfs:comment": "@prefix and qnames",
155
- "testAction": "http://example/test-01.ttl",
223
+ "title": "subm-test-01",
156
224
  "assertions": [
157
225
  {
226
+ "@id": "_:b3",
158
227
  "@type": "Assertion",
159
228
  "result": {
229
+ "@id": "_:b5",
160
230
  "@type": "TestResult",
161
231
  "outcome": "earl:untested"
162
232
  },
163
- "test": "_:b1",
233
+ "test": "_:b0",
164
234
  "subject": "http://rubygems.org/gems/rdf-turtle",
165
235
  "assertedBy": null
166
236
  }
167
237
  ],
238
+ "testAction": "http://example/test-01.ttl",
168
239
  "testResult": "http://example/test-01.out"
169
240
  }
170
241
  ]
171
242
  }
172
- ],
173
- "generatedBy": {
174
- "@id": "http://rubygems.org/gems/earl-report",
175
- "@type": [
176
- "doap:Project",
177
- "Software"
178
- ],
179
- "doapDesc": "EarlReport generates HTML+RDFa rollups of multiple EARL reports",
180
- "shortdesc": "Earl Report summary generator",
181
- "name": "earl-report",
182
- "developer": [
183
- {
184
- "@id": "http://greggkellogg.net/foaf#me",
185
- "@type": [
186
- "Assertor",
187
- "foaf:Person"
188
- ],
189
- "foaf:name": "Gregg Kellogg",
190
- "foaf:homepage": "http://greggkellogg.net/"
191
- }
192
- ],
193
- "homepage": "https://github.com/gkellogg/earl-report",
194
- "release": {
195
- "@id": "https://github.com/gkellogg/earl-report/tree/0.4.8",
196
- "@type": "doap:Version",
197
- "doap:created": {
198
- "@value": "2019-09-06",
199
- "@type": "http://www.w3.org/2001/XMLSchema#date"
200
- },
201
- "name": "earl-report-0.4.8",
202
- "revision": "0.4.8"
203
- },
204
- "language": "Ruby",
205
- "license": "http://unlicense.org"
206
- },
207
- "testSubjects": [
208
- {
209
- "@id": "http://rubygems.org/gems/rdf-turtle",
210
- "@type": [
211
- "TestSubject",
212
- "doap:Project",
213
- "Software"
214
- ],
215
- "doapDesc": "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.",
216
- "name": "RDF::Turtle",
217
- "developer": [
218
- {
219
- "@id": "http://greggkellogg.net/foaf#me",
220
- "@type": [
221
- "Assertor",
222
- "foaf:Person"
223
- ],
224
- "foaf:name": "Gregg Kellogg",
225
- "foaf:homepage": "http://greggkellogg.net/"
226
- }
227
- ],
228
- "homepage": "http://ruby-rdf.github.com/rdf-turtle",
229
- "release": [
230
- {
231
- "revision": "unknown"
232
- },
233
- {
234
- "revision": "unknown"
235
- }
236
- ],
237
- "language": "Ruby"
238
- }
239
- ],
240
- "bibRef": "[[TURTLE]]",
241
- "assertions": [
242
- "/Users/gregg/Projects/earl-report/spec/test-files/report-complete.ttl"
243
243
  ]
244
244
  }
@@ -18,15 +18,15 @@
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> _:g406000);
24
+ mf:entries (<http://example/manifest.ttl#testeval00> _:g407680);
25
25
  mf:name "Example Test Cases" .
26
26
 
27
- <http://example/manifest.ttl#testeval00> a earl:TestCriterion,
28
- <http://www.w3.org/ns/rdftest#TestTurtleEval>,
29
- earl:TestCase;
27
+ <http://example/manifest.ttl#testeval00> a earl:TestCase,
28
+ earl:TestCriterion,
29
+ <http://www.w3.org/ns/rdftest#TestTurtleEval>;
30
30
  rdfs:comment "Blank subject";
31
31
  mf:action <http://example/test-00.ttl>;
32
32
  mf:name "subm-test-00";
@@ -43,9 +43,9 @@
43
43
  earl:test <http://example/manifest.ttl#testeval00>
44
44
  ] .
45
45
 
46
- _:g406000 a earl:TestCriterion,
47
- <http://www.w3.org/ns/rdftest#TestTurtleEval>,
48
- earl:TestCase;
46
+ _:g407680 a earl:TestCase,
47
+ earl:TestCriterion,
48
+ <http://www.w3.org/ns/rdftest#TestTurtleEval>;
49
49
  rdfs:comment "@prefix and qnames";
50
50
  mf:action <http://example/test-01.ttl>;
51
51
  mf:name "subm-test-01";
@@ -57,20 +57,20 @@ _:g406000 a earl:TestCriterion,
57
57
  earl:outcome earl:untested
58
58
  ];
59
59
  earl:subject <http://rubygems.org/gems/rdf-turtle>;
60
- earl:test _:g406000
60
+ earl:test _:g407680
61
61
  ] .
62
62
 
63
63
  # Test Subjects
64
64
 
65
- <http://rubygems.org/gems/rdf-turtle> a earl:TestSubject,
66
- doap:Project,
65
+ <http://rubygems.org/gems/rdf-turtle> a doap:Project,
66
+ earl:TestSubject,
67
67
  earl:Software;
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
72
  doap:programming-language "Ruby";
73
- doap:release [doap:revision "unknown"], [doap:revision "unknown"] .
73
+ doap:release [doap:revision "unknown"] .
74
74
 
75
75
  <http://greggkellogg.net/foaf#me> a earl:Assertor,
76
76
  foaf:Person;
@@ -87,10 +87,10 @@ _:g406000 a earl:TestCriterion,
87
87
  doap:license <http://unlicense.org>;
88
88
  doap:name "earl-report";
89
89
  doap:programming-language "Ruby";
90
- doap:release <https://github.com/gkellogg/earl-report/tree/0.4.8>;
90
+ doap:release <https://github.com/gkellogg/earl-report/tree/0.4.9>;
91
91
  doap:shortdesc "Earl Report summary generator"@en .
92
92
 
93
- <https://github.com/gkellogg/earl-report/tree/0.4.8> a doap:Version;
94
- doap:created "2019-09-06"^^xsd:date;
95
- doap:name "earl-report-0.4.8";
96
- doap:revision "0.4.8" .
93
+ <https://github.com/gkellogg/earl-report/tree/0.4.9> a doap:Version;
94
+ doap:created "2020-04-01"^^xsd:date;
95
+ doap:name "earl-report-0.4.9";
96
+ doap:revision "0.4.9" .
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.9
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gregg Kellogg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-21 00:00:00.000000000 Z
11
+ date: 2020-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkeddata