earl-report 0.4.9 → 0.5.0

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: 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