diff --git a/.coveralls.yml b/.coveralls.yml new file mode 100644 index 0000000..349f8c4 --- /dev/null +++ b/.coveralls.yml @@ -0,0 +1 @@ +repo_token: H8GJq25RE5BDhwShpV5sgE1Dxd6Jodc2z diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..9862107 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,43 @@ +# This workflow runs continuous CI across different versions of ruby on all branches and pull requests to develop. + +name: CI +on: + push: + branches: [ '**' ] + pull_request: + branches: [ develop ] + workflow_dispatch: + +jobs: + tests: + name: Ruby ${{ matrix.ruby }} ${{ matrix.gemfile }} + if: "contains(github.event.commits[0].message, '[ci skip]') == false" + runs-on: ubuntu-latest + env: + CI: true + BUNDLE_GEMFILE: "${{ matrix.gemfile }}" + strategy: + fail-fast: false + matrix: + ruby: + - 2.4 + - 2.5 + - 2.6 + - 2.7 + #- ruby-head # Until net-http-persistent updated + #- jruby # No Nokogumbo on JRuby + gemfile: + - Gemfile + - Gemfile-pure + steps: + - name: Clone repository + uses: actions/checkout@v2 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + - name: Install dependencies + run: bundle install --jobs 4 --retry 3 + - name: Run tests + run: bundle exec rspec spec + diff --git a/.gitignore b/.gitignore index d991f7c..5ea46be 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /spec/w3c-rdf *.lock *.byebug_history +coverage diff --git a/AUTHORS b/AUTHORS index b46439e..83944bd 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1 +1 @@ -* Gregg Kellogg \ No newline at end of file +* Gregg Kellogg \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1c373dd..a8f7d0b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ Community contributions are essential for keeping Ruby RDF great. We want to kee This repository uses [Git Flow](https://github.com/nvie/gitflow) to manage development and release activity. All submissions _must_ be on a feature branch based on the _develop_ branch to ease staging and integration. -* create or respond to an issue on the [Github Repository](http://github.com/ruby-rdf/rdf-rdfxml/issues) +* create or respond to an issue on the [Github Repository](https://github.com/ruby-rdf/rdf-rdfxml/issues) * Fork and clone the repo: `git clone git@github.com:your-username/rdf-rdfxml.git` * Install bundle: @@ -28,9 +28,11 @@ This repository uses [Git Flow](https://github.com/nvie/gitflow) to manage devel enough, be assured we will eventually add you in there. * Do note that in order for us to merge any non-trivial changes (as a rule of thumb, additions larger than about 15 lines of code), we need an - explicit [public domain dedication][PDD] on record from you. + explicit [public domain dedication][PDD] on record from you, + which you will be asked to agree to on the first commit to a repo within the organization. + Note that the agreement applies to all repos in the [Ruby RDF](https://github.com/ruby-rdf/) organization. -[YARD]: http://yardoc.org/ -[YARD-GS]: http://rubydoc.info/docs/yard/file/docs/GettingStarted.md -[PDD]: http://lists.w3.org/Archives/Public/public-rdf-ruby/2010May/0013.html -[pr]: https://github.com/ruby-rdf/rdf-rdfxml/compare/ +[YARD]: https://yardoc.org/ +[YARD-GS]: https://rubydoc.info/docs/yard/file/docs/GettingStarted.md +[PDD]: https://unlicense.org/#unlicensing-contributions +[pr]: https://github.com/ruby-rdf/rdf/compare/ diff --git a/Gemfile b/Gemfile index ae363b3..fc60977 100644 --- a/Gemfile +++ b/Gemfile @@ -24,3 +24,8 @@ group :debug do gem "ruby-debug", platforms: :jruby gem "byebug", platform: :mri end + +group :test do + gem 'simplecov', platforms: :mri + gem 'coveralls', '~> 0.8', platforms: :mri +end diff --git a/README.md b/README.md index 6f9a3c7..571fe52 100755 --- a/README.md +++ b/README.md @@ -2,8 +2,10 @@ [RDF/XML][] reader/writer for [RDF.rb][]. -[![Gem Version](https://badge.fury.io/rb/rdf-rdfxml.png)](http://badge.fury.io/rb/rdf-rdfxml) -[![Build Status](https://secure.travis-ci.org/ruby-rdf/rdf-rdfxml.png?branch=master)](http://travis-ci.org/ruby-rdf/rdf-rdfxml) +[![Gem Version](https://badge.fury.io/rb/rdf-rdfxml.png)](https://badge.fury.io/rb/rdf-rdfxml) +[![Build Status](https://github.com/ruby-rdf/rdf-rdfxml/workflows/CI/badge.svg?branch=develop)](https://github.com/ruby-rdf/rdf-rdfxml/actions?query=workflow%3ACI) +[![Coverage Status](https://coveralls.io/repos/ruby-rdf/rdf-rdfxml/badge.svg?branch=develop)](https://coveralls.io/github/ruby-rdf/rdf-rdfxml?branch=develop) +[![Gitter chat](https://badges.gitter.im/ruby-rdf/rdf.png)](https://gitter.im/ruby-rdf/rdf) ## DESCRIPTION @@ -16,7 +18,7 @@ Fully compliant [RDF/XML][] parser and serializer. Install with `gem install rdf-rdfxml` -* 100% free and unencumbered [public domain](http://unlicense.org/) software. +* 100% free and unencumbered [public domain](https://unlicense.org/) software. * Implements a complete parser for [RDF/XML][]. * Compatible with Ruby >= 2.4. @@ -40,8 +42,8 @@ Write a graph to a file: end ## Dependencies -* [RDF.rb](http://rubygems.org/gems/rdf) (~> 3.1) -* Soft dependency on [Nokogiri](http://rubygems.org/gems/nokogiri) (>= 1.10) +* [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.1) +* Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (>= 1.10) ## Documentation Full documentation available on [Rubydoc.info][RDF/XML doc]) @@ -63,13 +65,13 @@ Full documentation available on [Rubydoc.info][RDF/XML doc]) * [RDF/XML][RDF/XML] * [Distiller](http://rdf.greggkellogg.net) * [Documentation][RDF/XML doc] -* [RDF Tests](http://www.w3.org/2000/10/rdf-tests/rdfcore/allTestCases.html) +* [RDF Tests](https://www.w3.org/2000/10/rdf-tests/rdfcore/allTestCases.html) ## Author -* [Gregg Kellogg](http://github.com/gkellogg) - +* [Gregg Kellogg](https://github.com/gkellogg) - ## Contributors -* [Nicholas Humfrey](http://github.com/njh) - +* [Nicholas Humfrey](https://github.com/njh) - ## Contributing This repository uses [Git Flow](https://github.com/nvie/gitflow) to mange development and release activity. All submissions _must_ be on a feature branch based on the _develop_ branch to ease staging and integration. @@ -84,25 +86,27 @@ This repository uses [Git Flow](https://github.com/nvie/gitflow) to mange develo list in the the `README`. Alphabetical order applies. * Do note that in order for us to merge any non-trivial changes (as a rule of thumb, additions larger than about 15 lines of code), we need an - explicit [public domain dedication][PDD] on record from you. + explicit [public domain dedication][PDD] on record from you, + which you will be asked to agree to on the first commit to a repo within the organization. + Note that the agreement applies to all repos in the [Ruby RDF](https://github.com/ruby-rdf/) organization. ## License This is free and unencumbered public domain software. For more information, -see or the accompanying {file:UNLICENSE} file. +see or the accompanying {file:UNLICENSE} file. ## FEEDBACK * gregg@greggkellogg.net -* -* -* - -[Ruby]: http://ruby-lang.org/ -[RDF]: http://www.w3.org/RDF/ -[RDF.rb]: http://rubygems.org/gems/rdf -[RDF/XML]: hhttp://www.w3.org/TR/rdf-syntax-grammar/ "RDF/XML Syntax Specification" -[YARD]: http://yardoc.org/ -[YARD-GS]: http://rubydoc.info/docs/yard/file/docs/GettingStarted.md -[PDD]: http://lists.w3.org/Archives/Public/public-rdf-ruby/2010May/0013.html -[RDF/XML doc]: http://rubydoc.info/github/ruby-rdf/rdf-rdfxml/master/frames \ No newline at end of file +* +* +* + +[Ruby]: https://ruby-lang.org/ +[RDF]: https://www.w3.org/RDF/ +[RDF.rb]: https://rubygems.org/gems/rdf +[RDF/XML]: http://www.w3.org/TR/rdf-syntax-grammar/ "RDF/XML Syntax Specification" +[YARD]: https://yardoc.org/ +[YARD-GS]: https://rubydoc.info/docs/yard/file/docs/GettingStarted.md +[PDD]: https://unlicense.org/#unlicensing-contributions +[RDF/XML doc]: https://rubydoc.info/github/ruby-rdf/rdf-rdfxml/master/frames \ No newline at end of file diff --git a/UNLICENSE b/UNLICENSE index 68a49da..efb9808 100644 --- a/UNLICENSE +++ b/UNLICENSE @@ -21,4 +21,4 @@ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -For more information, please refer to +For more information, please refer to diff --git a/VERSION b/VERSION index fd2a018..94ff29c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.1.0 +3.1.1 diff --git a/etc/doap.nt b/etc/doap.nt index c957b87..98542d9 100644 --- a/etc/doap.nt +++ b/etc/doap.nt @@ -1,20 +1,21 @@ - . - . - . - . - . - . - "2010-06-03"^^ . - "\n RDF::RDFXML is an RDF/XML reader/writer for Ruby using the RDF.rb library suite.\n "@en . - . - . - . - . - . - . - . - . - "RDF::RDFXML" . - "RDF/XML reader/writer for Ruby."@en . - . - . + . + . + . + . + . + . + "2010-06-03"^^ . + "\n RDF::RDFXML is an RDF/XML reader/writer for Ruby using the RDF.rb library suite.\n "@en . + . + . + . + . + . + . + . + . + "RDF::RDFXML" . + "Ruby" . + "RDF/XML reader/writer for Ruby."@en . + . + . diff --git a/etc/doap.rdf b/etc/doap.rdf index a086f37..75441ea 100644 --- a/etc/doap.rdf +++ b/etc/doap.rdf @@ -5,28 +5,29 @@ xmlns:dc="http://purl.org/dc/terms/" xmlns:xhv="http://www.w3.org/1999/xhtml/vocab#" xmlns:foaf="http://xmlns.com/foaf/0.1/" - xml:base="http://rubygems.org/gems/rdf-rdfxml"> - - - - + xml:base="https://rubygems.org/gems/rdf-rdfxml"> + + + + 2010-06-03 RDF::RDFXML is an RDF/XML reader/writer for Ruby using the RDF.rb library suite. - + - + - - - - + Ruby + + + + RDF::RDFXML RDF/XML reader/writer for Ruby. - - + + diff --git a/etc/doap.ttl b/etc/doap.ttl index d8789b6..718ead8 100644 --- a/etc/doap.ttl +++ b/etc/doap.ttl @@ -1,29 +1,31 @@ -@prefix dc: . +@base . +@prefix dc: . @prefix doap: . @prefix foaf: . -@prefix rdf: . -@prefix xhv: . -@prefix xsd: . +@prefix rdf: . +@prefix xhv: . +@prefix xsd: . - a doap:Project; - dc:creator ; - doap:blog ; - doap:bug-database ; - doap:category , - ; - doap:created "2010-06-03"^^xsd:date; +<> a doap:Project; + doap:name "RDF::RDFXML"; + doap:shortdesc "RDF/XML reader/writer for Ruby RDF.rb."@en; doap:description """ RDF::RDFXML is an RDF/XML reader/writer for Ruby using the RDF.rb library suite. """@en; - doap:developer ; - doap:documenter ; - doap:download-page ; + dc:creator ; + doap:blog ; + doap:bug-database ; + doap:category , + ; + doap:created "2010-06-03"^^xsd:date; + doap:developer ; + doap:documenter ; + doap:download-page <>; doap:helper ; - doap:homepage ; + doap:homepage ; doap:implements ; - doap:mailing-list ; - doap:maintainer ; - doap:name "RDF::RDFXML"; - doap:shortdesc "RDF/XML reader/writer for Ruby."@en; - xhv:license ; - foaf:maker . + doap:programming-language "Ruby"; + doap:mailing-list ; + doap:maintainer ; + xhv:license ; + foaf:maker . diff --git a/etc/earl.ttl b/etc/earl.ttl index df3fe9c..b92b89a 100644 --- a/etc/earl.ttl +++ b/etc/earl.ttl @@ -6,10 +6,10 @@ @prefix xhv: . @prefix xsd: . - a doap:Project; + a doap:Project; dc:creator ; doap:blog ; - doap:bug-database ; + doap:bug-database ; doap:category , ; doap:created "2010-06-03"^^; @@ -18,17 +18,17 @@ """@en; doap:developer ; doap:documenter ; - doap:download-page ; + doap:download-page ; doap:helper ; - doap:homepage ; + doap:homepage ; doap:mailing-list ; doap:maintainer ; doap:name "RDF::RDFXML"; doap:shortdesc "RDF/XML reader/writer for Ruby."@en; - xhv:license ; + xhv:license ; foaf:maker . -<> foaf:primaryTopic ; +<> foaf:primaryTopic ; dc:issued "2014-01-29T11:10:43-08:00"^^xsd:dateTime ; foaf:maker . @@ -39,7 +39,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -49,7 +49,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -59,7 +59,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -69,7 +69,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -79,7 +79,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -89,7 +89,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -99,7 +99,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -109,7 +109,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -119,7 +119,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -129,7 +129,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -139,7 +139,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -149,7 +149,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -159,7 +159,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -169,7 +169,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -179,7 +179,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -189,7 +189,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -199,7 +199,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -209,7 +209,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -219,7 +219,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -229,7 +229,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -239,7 +239,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -249,7 +249,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -259,7 +259,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -269,7 +269,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -279,7 +279,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -289,7 +289,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -299,7 +299,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -309,7 +309,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -319,7 +319,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -329,7 +329,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -339,7 +339,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -349,7 +349,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -359,7 +359,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -369,7 +369,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -379,7 +379,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -389,7 +389,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -399,7 +399,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -409,7 +409,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -419,7 +419,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -429,7 +429,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -439,7 +439,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -449,7 +449,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -459,7 +459,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -469,7 +469,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -479,7 +479,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -489,7 +489,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -499,7 +499,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -509,7 +509,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -519,7 +519,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -529,7 +529,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -539,7 +539,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -549,7 +549,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -559,7 +559,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -569,7 +569,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -579,7 +579,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -589,7 +589,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -599,7 +599,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -609,7 +609,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -619,7 +619,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -629,7 +629,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -639,7 +639,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -649,7 +649,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -659,7 +659,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -669,7 +669,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -679,7 +679,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -689,7 +689,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -699,7 +699,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -709,7 +709,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -719,7 +719,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -729,7 +729,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -739,7 +739,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -749,7 +749,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -759,7 +759,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -769,7 +769,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -779,7 +779,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -789,7 +789,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -799,7 +799,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -809,7 +809,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -819,7 +819,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -829,7 +829,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -839,7 +839,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -849,7 +849,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -859,7 +859,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -869,7 +869,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -879,7 +879,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -889,7 +889,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -899,7 +899,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -909,7 +909,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -919,7 +919,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -929,7 +929,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -939,7 +939,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -949,7 +949,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -959,7 +959,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -969,7 +969,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -979,7 +979,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -989,7 +989,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -999,7 +999,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1009,7 +1009,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1019,7 +1019,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1029,7 +1029,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1039,7 +1039,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1049,7 +1049,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1059,7 +1059,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1069,7 +1069,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1079,7 +1079,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1089,7 +1089,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1099,7 +1099,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1109,7 +1109,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1119,7 +1119,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1129,7 +1129,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1139,7 +1139,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1149,7 +1149,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1159,7 +1159,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1169,7 +1169,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1179,7 +1179,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1189,7 +1189,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1199,7 +1199,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1209,7 +1209,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1219,7 +1219,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1229,7 +1229,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1239,7 +1239,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1249,7 +1249,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1259,7 +1259,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1269,7 +1269,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1279,7 +1279,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1289,7 +1289,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1299,7 +1299,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1309,7 +1309,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1319,7 +1319,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1329,7 +1329,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1339,7 +1339,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1349,7 +1349,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1359,7 +1359,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1369,7 +1369,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1379,7 +1379,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1389,7 +1389,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1399,7 +1399,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1409,7 +1409,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1419,7 +1419,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1429,7 +1429,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1439,7 +1439,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1449,7 +1449,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1459,7 +1459,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1469,7 +1469,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1479,7 +1479,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1489,7 +1489,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1499,7 +1499,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1509,7 +1509,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1519,7 +1519,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1529,7 +1529,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1539,7 +1539,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1549,7 +1549,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1559,7 +1559,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1569,7 +1569,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1579,7 +1579,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1589,7 +1589,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1599,7 +1599,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1609,7 +1609,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1619,7 +1619,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1629,7 +1629,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1639,7 +1639,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; @@ -1649,7 +1649,7 @@ [ a earl:Assertion; earl:assertedBy ; - earl:subject ; + earl:subject ; earl:test ; earl:result [ a earl:TestResult; diff --git a/lib/rdf/rdfxml.rb b/lib/rdf/rdfxml.rb index bf4af07..dab0040 100644 --- a/lib/rdf/rdfxml.rb +++ b/lib/rdf/rdfxml.rb @@ -2,6 +2,7 @@ require 'rdf' module RDF + autoload :XML, 'rdf/rdfa/vocab' ## # **`RDF::RDFXML`** is an RDF/XML extension for RDF.rb. # @@ -15,17 +16,15 @@ module RDF # end # end # - # @see http://rubygems.org/gems/rdf + # @see https://rubygems.org/gems/rdf # @see http://www.w3.org/TR/REC-rdf-syntax/ # - # @author [Gregg Kellogg](http://kellogg-assoc.com/) + # @author [Gregg Kellogg](http://greggkellogg.net/) module RDFXML require 'rdf/rdfxml/format' - require 'rdf/rdfxml/vocab' autoload :Reader, 'rdf/rdfxml/reader' autoload :Writer, 'rdf/rdfxml/writer' autoload :VERSION, 'rdf/rdfxml/version' - autoload :XML, 'rdf/rdfxml/vocab' # Regexp matching an NCName. NC_REGEXP = Regexp.new( diff --git a/lib/rdf/rdfxml/reader.rb b/lib/rdf/rdfxml/reader.rb index 11e94a5..23dadf4 100644 --- a/lib/rdf/rdfxml/reader.rb +++ b/lib/rdf/rdfxml/reader.rb @@ -11,7 +11,9 @@ module RDF::RDFXML # # Based on RDF/XML Syntax Specification: http://www.w3.org/TR/REC-rdf-syntax/ # - # @author [Gregg Kellogg](http://kellogg-assoc.com/) + # Extension: A nodeElement can also use the rdf:resource attribute, if none of the other standard attributes are defined. + # + # @author [Gregg Kellogg](http://greggkellogg.net/) class Reader < RDF::Reader format Format include RDF::Util::Logger @@ -158,8 +160,11 @@ def initialize(input = $stdin, **options, &block) input.rewind if input.respond_to?(:rewind) initialize_xml(input, **options) rescue log_fatal($!.message) - log_error("Empty document") if root.nil? - log_error("Synax errors") {doc_errors} if !doc_errors.empty? + if root.nil? + log_info("Empty document") + elsif !doc_errors.empty? + log_error("Synax errors") {doc_errors} + end block.call(self) if block_given? end @@ -583,6 +588,7 @@ def parse_subject(el, ec) about = el.attribute_with_ns("about", RDF.to_uri.to_s) id = el.attribute_with_ns("ID", RDF.to_uri.to_s) nodeID = el.attribute_with_ns("nodeID", RDF.to_uri.to_s) + resource = el.attribute_with_ns("resource", RDF.to_uri.to_s) if nodeID && about add_error(el, "Cannot have rdf:nodeID and rdf:about.") @@ -603,6 +609,10 @@ def parse_subject(el, ec) about = RDF::NTriples.unescape(about.value) add_debug(el) {"parse_subject, about: #{about.inspect}"} uri(ec.base, about) + when resource + resource = RDF::NTriples.unescape(resource.value) + add_debug(el) {"parse_subject, resource: #{resource.inspect}"} + uri(ec.base, resource) else add_debug(el, "parse_subject, BNode") RDF::Node.new diff --git a/lib/rdf/rdfxml/vocab.rb b/lib/rdf/rdfxml/vocab.rb deleted file mode 100644 index 551b9a3..0000000 --- a/lib/rdf/rdfxml/vocab.rb +++ /dev/null @@ -1,3 +0,0 @@ -module RDF - class XML < Vocabulary("http://www.w3.org/XML/1998/namespace"); end -end diff --git a/lib/rdf/rdfxml/writer.rb b/lib/rdf/rdfxml/writer.rb index 579886c..69d5d0b 100644 --- a/lib/rdf/rdfxml/writer.rb +++ b/lib/rdf/rdfxml/writer.rb @@ -46,7 +46,7 @@ module RDF::RDFXML # end # end # - # @author [Gregg Kellogg](http://kellogg-assoc.com/) + # @author [Gregg Kellogg](http://greggkellogg.net/) class Writer < RDF::RDFa::Writer format RDF::RDFXML::Format include RDF::Util::Logger diff --git a/rdf-rdfxml.gemspec b/rdf-rdfxml.gemspec index 0a4a3c3..9fb9402 100755 --- a/rdf-rdfxml.gemspec +++ b/rdf-rdfxml.gemspec @@ -6,7 +6,7 @@ Gem::Specification.new do |gem| gem.date = File.mtime('VERSION').strftime('%Y-%m-%d') gem.name = %q{rdf-rdfxml} - gem.homepage = %q{http://ruby-rdf.github.com/rdf-rdfxml} + gem.homepage = %q{https://github.com/ruby-rdf/rdf-rdfxml} gem.license = 'Unlicense' gem.summary = %q{RDF/XML reader/writer for RDF.rb.} gem.description = %q{RDF::RDFXML is an RDF/XML reader and writer for the RDF.rb library suite.} @@ -28,15 +28,14 @@ Gem::Specification.new do |gem| #gem.add_development_dependency 'nokogiri' , '~> 1.10' #gem.add_development_dependency 'equivalent-xml' , '~> 0.6' # conditionally done in Gemfile - gem.add_development_dependency 'open-uri-cached', '~> 0.0', '>= 0.0.5' gem.add_development_dependency 'json-ld', '>= 3.1' - gem.add_development_dependency 'rspec', '~> 3.9' + gem.add_development_dependency 'rspec', '~> 3.10' gem.add_development_dependency 'rspec-its', '~> 1.3' gem.add_development_dependency 'rdf-isomorphic', '~> 3.1' gem.add_development_dependency 'rdf-turtle', '~> 3.1' gem.add_development_dependency 'rdf-spec', '~> 3.1' gem.add_development_dependency 'rdf-vocab', '~> 3.1' - gem.add_development_dependency 'yard' , '~> 0.9.20' + gem.add_development_dependency 'yard' , '~> 0.9' gem.post_install_message = nil end diff --git a/script/tc b/script/tc index 840722d..6656c89 100755 --- a/script/tc +++ b/script/tc @@ -19,7 +19,7 @@ def earl_preamble(options) options[:output].write g.dump(:ttl, prefixes: reader.prefixes) end options[:output].puts %( -<> foaf:primaryTopic ; +<> foaf:primaryTopic ; dct:issued "#{RUN_TIME.xmlschema}"^^xsd:dateTime ; foaf:maker <#{ASSERTOR}> . @@ -92,7 +92,7 @@ def run_tc(tc, **options) options[:output].puts %{ [ a earl:Assertion; earl:assertedBy <#{ASSERTOR}>; - earl:subject ; + earl:subject ; earl:test <#{tc.id}>; earl:result [ a earl:TestResult; diff --git a/spec/format_spec.rb b/spec/format_spec.rb index c39a5ac..9ec03b8 100644 --- a/spec/format_spec.rb +++ b/spec/format_spec.rb @@ -1,5 +1,4 @@ -$:.unshift "." -require File.join(File.dirname(__FILE__), 'spec_helper') +require_relative 'spec_helper' require 'rdf/spec/format' describe RDF::RDFXML::Format do diff --git a/spec/jruby_spec.rb b/spec/jruby_spec.rb index 7daa7c2..a230dd5 100644 --- a/spec/jruby_spec.rb +++ b/spec/jruby_spec.rb @@ -1,6 +1,5 @@ # coding: utf-8 -$:.unshift "." -require File.join(File.dirname(__FILE__), 'spec_helper') +require_relative 'spec_helper' require 'rdf/spec/reader' require 'rdf/vocab' diff --git a/spec/reader_spec.rb b/spec/reader_spec.rb index eb90dd3..769f787 100644 --- a/spec/reader_spec.rb +++ b/spec/reader_spec.rb @@ -1,6 +1,5 @@ # coding: utf-8 -$:.unshift "." -require File.join(File.dirname(__FILE__), 'spec_helper') +require_relative 'spec_helper' require 'rdf/spec/reader' # w3c test suite: http://www.w3.org/TR/rdf-testcases/ @@ -15,6 +14,11 @@ let(:reader_input) {File.read(doap)} let(:reader) {RDF::RDFXML::Reader.new(reader_input)} let(:reader_count) {File.open(doap_nt).each_line.to_a.length} + let(:reader_invalid_input) {%( + + + + )} end context "discovery" do @@ -389,6 +393,96 @@ expect(graph).to be_equivalent_graph(expected, about: "http://example.com/", logger: logger) end end + + context :parseType do + { + "Literal (xml-canon/test001)": { + input: %( + + + Foo + + + ), + expected: %( + "Foo"^^ . + ) + }, + "Resource": { + input: %( + + + + + + + + ), + expected: %( + _:a1 . + ) + }, + "Collection": { + input: %( + + + + + + + + + + + + ), + expected: %( + _:a0 . + _:a0 _:a1 . + _:a1 . + _:a1 _:a2 . + _:a2 . + _:a2 . + ) + }, + "Collection (with rdf:resource)": { + input: %( + + + + + + + + + + + + ), + expected: %( + _:a0 . + _:a0 _:a1 . + _:a1 . + _:a1 _:a2 . + _:a2 . + _:a2 . + ) + }, + }.each do |name, params| + it name do + graph = parse(params[:input], base_uri: "http://example.com", validate: true) + expect(graph).to be_equivalent_graph(params[:expected], about: "http://example.com/", logger: logger) + end + end + end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index bdc51f6..f5dbfec 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -9,19 +9,27 @@ require 'rdf/spec' require 'rdf/spec/matchers' require 'matchers' -require 'open-uri/cached' begin require 'nokogiri' rescue LoadError => e :rexml end +begin + require 'simplecov' + require 'coveralls' + SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([ + SimpleCov::Formatter::HTMLFormatter, + Coveralls::SimpleCov::Formatter + ]) + SimpleCov.start do + add_filter "/spec/" + add_filter "/lib/rdf/rdfa/reader/rexml.rb" + add_filter "/lib/rdf/rdfa/context.rb" + end +rescue LoadError +end require 'rdf/rdfxml' -# Create and maintain a cache of downloaded URIs -URI_CACHE = File.expand_path(File.join(File.dirname(__FILE__), "uri-cache")) -Dir.mkdir(URI_CACHE) unless File.directory?(URI_CACHE) -OpenURI::Cache.class_eval { @cache_path = URI_CACHE } - ::RSpec.configure do |c| c.filter_run focus: true c.run_all_when_everything_filtered = true diff --git a/spec/suite_spec.rb b/spec/suite_spec.rb index d42e4d1..7cb5803 100644 --- a/spec/suite_spec.rb +++ b/spec/suite_spec.rb @@ -1,10 +1,10 @@ # coding: utf-8 -$:.unshift "." -require 'spec_helper' +require_relative 'spec_helper' +require 'rdf/rdfxml' describe RDF::RDFXML::Reader do describe "w3c rdfcore tests" do - require 'suite_helper' + require_relative 'suite_helper' %w(manifest.ttl).each do |man| Fixtures::SuiteTest::Manifest.open(Fixtures::SuiteTest::BASE + man) do |m| @@ -32,7 +32,8 @@ begin repo << reader rescue Exception => e - expect(e.message).to produce("Not exception #{e.inspect}", t.debug + e.backtrace.unshift("Backtrace:")) + t.logger.debug e.e.backtrace.unshift("Backtrace:").join("\n") + expect(e.message).to produce("Not exception #{e.inspect}", t.logger) end else expect { diff --git a/spec/writer_spec.rb b/spec/writer_spec.rb index 7bb6ec9..e5da3c3 100644 --- a/spec/writer_spec.rb +++ b/spec/writer_spec.rb @@ -1,5 +1,4 @@ -$:.unshift "." -require File.join(File.dirname(__FILE__), 'spec_helper') +require_relative 'spec_helper' require 'rdf/spec/writer' require 'rdf/vocab' autoload :CGI, 'cgi'