From deb47598ea4b3ac942478ee49ef0d40bffc148df Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Thu, 28 Jul 2016 11:40:35 -0400 Subject: [PATCH 1/7] Update reference to sxp repo in Gemfiles. --- Gemfile | 2 +- Gemfile-pure | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index b28da4d..1bdd290 100644 --- a/Gemfile +++ b/Gemfile @@ -15,7 +15,7 @@ group :development do gem 'rdf-turtle', github: "ruby-rdf/rdf-turtle", branch: "develop" gem 'rdf-vocab', github: "ruby-rdf/rdf-vocab", branch: "develop" gem "rdf-xsd", github: "ruby-rdf/rdf-xsd", branch: "develop" - gem 'sxp', github: "gkellogg/sxp-ruby", branch: "develop" + gem 'sxp', github: "dryruby/sxp.rb", branch: "develop" gem "equivalent-xml" end diff --git a/Gemfile-pure b/Gemfile-pure index 1f8f25a..b6118b7 100644 --- a/Gemfile-pure +++ b/Gemfile-pure @@ -15,7 +15,7 @@ group :development do gem 'rdf-turtle', github: "ruby-rdf/rdf-turtle", branch: "develop" gem 'rdf-vocab', github: "ruby-rdf/rdf-vocab", branch: "develop" gem "rdf-xsd", github: "ruby-rdf/rdf-xsd", branch: "develop" - gem 'sxp', github: "gkellogg/sxp-ruby", branch: "develop" + gem 'sxp', github: "dryruby/sxp.rb", branch: "develop" gem "equivalent-xml" end From 57224bb74ed1a6ee874f95aac3463310c6bae0da Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Fri, 12 Aug 2016 18:13:47 -0700 Subject: [PATCH 2/7] Depend on Ruby >= 2.2.2. Remove wirble from Gemfile, as dependency-ci objects that it has no license and it's not really neccessary. --- .travis.yml | 12 +++++------- Gemfile | 1 - README.md | 2 +- rdf-rdfxml.gemspec | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0eecaf5..13c5ba4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,12 +4,10 @@ script: "bundle exec rspec spec" env: - CI=true rvm: - - 2.0 - - 2.1 - - 2.2.4 - - 2.3.0 - - jruby-9.0.4.0 - - rbx-2 + - 2.2.5 + - 2.3.1 + - jruby-9.1.2.0 + - rbx gemfile: - Gemfile - Gemfile-pure @@ -20,4 +18,4 @@ cache: bundler sudo: false matrix: allow_failures: - - rvm: rbx-2 + - rvm: rbx diff --git a/Gemfile b/Gemfile index 1bdd290..9ae9858 100644 --- a/Gemfile +++ b/Gemfile @@ -21,7 +21,6 @@ group :development do end group :debug do - gem "wirble" gem "ruby-debug", platforms: :jruby gem "byebug", platform: :mri end diff --git a/README.md b/README.md index 37df1dd..0f46a9f 100755 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Install with `gem install rdf-rdfxml` * 100% free and unencumbered [public domain](http://unlicense.org/) software. * Implements a complete parser for [RDF/XML][]. -* Compatible with Ruby >= 2.0. +* Compatible with Ruby >= 2.2.2. ## Usage: Instantiate a parser and parse source, specifying type and base-URL diff --git a/rdf-rdfxml.gemspec b/rdf-rdfxml.gemspec index adce721..3d375b8 100755 --- a/rdf-rdfxml.gemspec +++ b/rdf-rdfxml.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |gem| gem.require_paths = %w(lib) gem.has_rdoc = false - gem.required_ruby_version = '>= 2.0' + gem.required_ruby_version = '>= 2.2.2' gem.requirements = [] gem.add_runtime_dependency 'rdf', '~> 2.0' From f3ddf3fa21cd0b24c56eb4e2ff133dca649bec09 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Sat, 13 Aug 2016 15:21:41 -0700 Subject: [PATCH 3/7] Change Travis JRuby to default and allow failures. --- .travis.yml | 3 ++- Gemfile-pure | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 13c5ba4..3b167f2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,7 @@ env: rvm: - 2.2.5 - 2.3.1 - - jruby-9.1.2.0 + - jruby - rbx gemfile: - Gemfile @@ -19,3 +19,4 @@ sudo: false matrix: allow_failures: - rvm: rbx + - rvm: jruby diff --git a/Gemfile-pure b/Gemfile-pure index b6118b7..91c89fb 100644 --- a/Gemfile-pure +++ b/Gemfile-pure @@ -21,7 +21,6 @@ group :development do end group :debug do - gem "wirble" gem "ruby-debug", platforms: :jruby gem "byebug", platform: :mri end From 8a12a78aa28f3a0f58926ae77844d3e7af52ea4c Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Mon, 3 Oct 2016 15:38:19 -0700 Subject: [PATCH 4/7] For Nokogiri, implement `#text?` to also include CDATA elements. Fixes #37. --- dependencyci.yml | 5 +++++ lib/rdf/rdfxml/reader.rb | 4 ++-- lib/rdf/rdfxml/reader/nokogiri.rb | 10 +++++++++- spec/reader_spec.rb | 18 ++++++++++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 dependencyci.yml diff --git a/dependencyci.yml b/dependencyci.yml new file mode 100644 index 0000000..0c67c1b --- /dev/null +++ b/dependencyci.yml @@ -0,0 +1,5 @@ +platform: + Rubygems: + rdf-isomorphic: + tests: + unmaintained: skip \ No newline at end of file diff --git a/lib/rdf/rdfxml/reader.rb b/lib/rdf/rdfxml/reader.rb index 1e58910..427f3a9 100644 --- a/lib/rdf/rdfxml/reader.rb +++ b/lib/rdf/rdfxml/reader.rb @@ -337,8 +337,8 @@ def nodeElement(el, ec) # Determine the content type of this property element log_fatal "child must be a proxy not a #{child.class}" unless child.is_a?(@implementation::NodeProxy) - text_nodes = child.children.select {|e| e.text? && !e.blank?} - element_nodes = child.children.select {|c| c.element? } + text_nodes = child.children.select(&:text?) + element_nodes = child.children.select(&:element?) add_debug(child) {"#{text_nodes.to_a.length} text nodes, #{element_nodes.to_a.length} element nodes"} text_nodes.each do |node| diff --git a/lib/rdf/rdfxml/reader/nokogiri.rb b/lib/rdf/rdfxml/reader/nokogiri.rb index ed91a22..b57f0d1 100644 --- a/lib/rdf/rdfxml/reader/nokogiri.rb +++ b/lib/rdf/rdfxml/reader/nokogiri.rb @@ -81,6 +81,14 @@ def display_path end end + ## + # Return true of this is a text node + # + # @return [Array<:text, :element, :attribute>] + def text? + (@node.text? || @node.cdata?) && !@node.blank? + end + ## # Return true of all child elements are text # @@ -104,7 +112,7 @@ def namespaces def children @children ||= NodeSetProxy.new(@node.children, self) end - + # Ancestors of this element, in order def ancestors @ancestors ||= parent ? parent.ancestors + [parent] : [] diff --git a/spec/reader_spec.rb b/spec/reader_spec.rb index 264dfe0..f897dce 100644 --- a/spec/reader_spec.rb +++ b/spec/reader_spec.rb @@ -202,6 +202,24 @@ expect(graph).to be_equivalent_graph(expected, logger: logger) end + it "reads text from CDATA" do + sampledoc = %( + + + + + ) + expected = %( + . + "Text" . + ) + graph = parse(sampledoc, validate: true) + expect(graph).to be_equivalent_graph(expected, logger: logger) + end + context :exceptions do it "should raise an error if rdf:aboutEach is used, as per the negative parser test rdfms-abouteach-error001 (rdf:aboutEach attribute)" do sampledoc = %q( From 038a5a4bb3b41670a8ac451115139152be9b68de Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Fri, 31 Mar 2017 12:15:44 -0700 Subject: [PATCH 5/7] Use Travis "trusty" build and wildcard Ruby versions. --- .travis.yml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 3b167f2..9e1f468 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,19 +4,15 @@ script: "bundle exec rspec spec" env: - CI=true rvm: - - 2.2.5 - - 2.3.1 - - jruby - - rbx -gemfile: - - Gemfile - - Gemfile-pure -env: - global: - - CI=true + - 2.2 + - 2.3 + - 2.4 + - jruby-9 + - rbx-3 cache: bundler sudo: false matrix: allow_failures: - - rvm: rbx - - rvm: jruby + - rvm: jruby-9 + - rvm: rbx-3 +dist: trusty From 9f43ed940d0122f1c9b43f255ad4b558455708ea Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Fri, 23 Jun 2017 16:45:18 -0700 Subject: [PATCH 6/7] Don't use self-closing tags until Haml fixes problem with `haml_tag`. --- lib/rdf/rdfxml/writer/haml_templates.rb | 15 ++++++++++----- spec/writer_spec.rb | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/rdf/rdfxml/writer/haml_templates.rb b/lib/rdf/rdfxml/writer/haml_templates.rb index a981926..9dbaf89 100644 --- a/lib/rdf/rdfxml/writer/haml_templates.rb +++ b/lib/rdf/rdfxml/writer/haml_templates.rb @@ -38,7 +38,8 @@ class Writer - if expanded_type.start_with?('_:') - haml_tag(get_qname(RDF.type), "rdf:nodeID" => expanded_type[2..-1]) -else - - haml_tag(get_qname(RDF.type), "rdf:resource" => expanded_type) + - # FIXME: closing tag forces close tag, as :/ is not honored in 5.0.1 + - haml_tag(get_qname(RDF.type), "", "rdf:resource" => expanded_type) - predicates.each do |p| = yield(p) ), @@ -59,9 +60,11 @@ class Writer - haml_tag(property, :"<", "xml:lang" => object.language, "rdf:datatype" => (object.datatype unless object.plain?)) do = object.value.to_s.encode(xml: :text) - elsif object.node? - - haml_tag(property, :"/", "rdf:nodeID" => object.id) + - # FIXME: closing tag forces close tag, as :/ is not honored in 5.0.1 + - haml_tag(property, "", "rdf:nodeID" => object.id) - else - - haml_tag(property, :"/", "rdf:resource" => relativize(object)) + - # FIXME: closing tag forces close tag, as :/ is not honored in 5.0.1 + - haml_tag(property, "", "rdf:resource" => relativize(object)) ), # Outpust for a list @@ -75,9 +78,11 @@ class Writer - if recurse && res = yield(object) = res - elsif object.node? - - haml_tag(get_qname(RDF.Description), :"/", "rdf:nodeID" => (object.id if ref_count(object) > 1)) + - # FIXME: closing tag forces close tag, as :/ is not honored in 5.0.1 + - haml_tag(get_qname(RDF.Description), "", "rdf:nodeID" => (object.id if ref_count(object) > 1)) - else - - haml_tag(get_qname(RDF.Description), :"/", "rdf:about" => relativize(object)) + - # FIXME: closing tag forces close tag, as :/ is not honored in 5.0.1 + - haml_tag(get_qname(RDF.Description), "", "rdf:about" => relativize(object)) ), } HAML_TEMPLATES = {base: BASE_HAML} diff --git a/spec/writer_spec.rb b/spec/writer_spec.rb index d355bab..632314c 100644 --- a/spec/writer_spec.rb +++ b/spec/writer_spec.rb @@ -691,9 +691,9 @@ class FOO < RDF::Vocabulary("http://foo/"); end m.entries.each do |t| next unless t.positive_test? && t.evaluate? # Literal serialization adds namespace definitions - next if t.subject =~ /rdfms-xml-literal-namespaces|xml-canon/ specify "#{t.name}" do + pending if t.name == 'xml-canon-test001' unless defined?(::Nokogiri) pending("XML-C14XL") if t.name == "xml-canon-test001" end From e336a35fdcd24caf089ed79366c8d646e5cc0d9a Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Tue, 25 Jul 2017 08:10:01 -0700 Subject: [PATCH 7/7] Version 2.1.0. --- VERSION | 2 +- example-files/example07.rdf | 13 +++++++++++++ example-files/example08.rdf | 15 +++++++++++++++ example-files/example09.rdf | 11 +++++++++++ example-files/example10.rdf | 7 +++++++ example-files/example11.rdf | 14 ++++++++++++++ example-files/example12.rdf | 12 ++++++++++++ example-files/example13.rdf | 10 ++++++++++ example-files/example14.rdf | 9 +++++++++ example-files/example15.rdf | 8 ++++++++ example-files/example16.rdf | 8 ++++++++ example-files/example17.rdf | 8 ++++++++ example-files/example18.rdf | 8 ++++++++ example-files/example19.rdf | 11 +++++++++++ example-files/example20.rdf | 8 ++++++++ 15 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 example-files/example07.rdf create mode 100644 example-files/example08.rdf create mode 100644 example-files/example09.rdf create mode 100644 example-files/example10.rdf create mode 100644 example-files/example11.rdf create mode 100644 example-files/example12.rdf create mode 100644 example-files/example13.rdf create mode 100644 example-files/example14.rdf create mode 100644 example-files/example15.rdf create mode 100644 example-files/example16.rdf create mode 100644 example-files/example17.rdf create mode 100644 example-files/example18.rdf create mode 100644 example-files/example19.rdf create mode 100644 example-files/example20.rdf diff --git a/VERSION b/VERSION index 227cea2..7ec1d6d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.0 +2.1.0 diff --git a/example-files/example07.rdf b/example-files/example07.rdf new file mode 100644 index 0000000..75c3256 --- /dev/null +++ b/example-files/example07.rdf @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/example-files/example08.rdf b/example-files/example08.rdf new file mode 100644 index 0000000..4974387 --- /dev/null +++ b/example-files/example08.rdf @@ -0,0 +1,15 @@ + + + + RDF/XML Syntax Specification (Revised) + RDF/XML Syntax Specification (Revised) + RDF/XML Syntax Specification (Revised) + + + + Der Baum + Das Buch ist außergewöhnlich + The Tree + + diff --git a/example-files/example09.rdf b/example-files/example09.rdf new file mode 100644 index 0000000..12697ef --- /dev/null +++ b/example-files/example09.rdf @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/example-files/example10.rdf b/example-files/example10.rdf new file mode 100644 index 0000000..0e172f9 --- /dev/null +++ b/example-files/example10.rdf @@ -0,0 +1,7 @@ + + + + 123 + + diff --git a/example-files/example11.rdf b/example-files/example11.rdf new file mode 100644 index 0000000..73ca564 --- /dev/null +++ b/example-files/example11.rdf @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/example-files/example12.rdf b/example-files/example12.rdf new file mode 100644 index 0000000..be34647 --- /dev/null +++ b/example-files/example12.rdf @@ -0,0 +1,12 @@ + + + + + Dave Beckett + + + + diff --git a/example-files/example13.rdf b/example-files/example13.rdf new file mode 100644 index 0000000..8fb5f08 --- /dev/null +++ b/example-files/example13.rdf @@ -0,0 +1,10 @@ + + + + + + + diff --git a/example-files/example14.rdf b/example-files/example14.rdf new file mode 100644 index 0000000..672af81 --- /dev/null +++ b/example-files/example14.rdf @@ -0,0 +1,9 @@ + + + + + A marvelous thing + + diff --git a/example-files/example15.rdf b/example-files/example15.rdf new file mode 100644 index 0000000..b00bec2 --- /dev/null +++ b/example-files/example15.rdf @@ -0,0 +1,8 @@ + + + + A marvelous thing + + diff --git a/example-files/example16.rdf b/example-files/example16.rdf new file mode 100644 index 0000000..7a47816 --- /dev/null +++ b/example-files/example16.rdf @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/example-files/example17.rdf b/example-files/example17.rdf new file mode 100644 index 0000000..c5b7ffc --- /dev/null +++ b/example-files/example17.rdf @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/example-files/example18.rdf b/example-files/example18.rdf new file mode 100644 index 0000000..94126d7 --- /dev/null +++ b/example-files/example18.rdf @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/example-files/example19.rdf b/example-files/example19.rdf new file mode 100644 index 0000000..0224350 --- /dev/null +++ b/example-files/example19.rdf @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/example-files/example20.rdf b/example-files/example20.rdf new file mode 100644 index 0000000..8493447 --- /dev/null +++ b/example-files/example20.rdf @@ -0,0 +1,8 @@ + + + + blah + +