rdf-rdfxml 0.2.2.1 → 0.2.3
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.
- data/History.txt +3 -0
- data/VERSION +1 -1
- data/lib/rdf/rdfxml/patches/nokogiri_hacks.rb +9 -1
- data/lib/rdf/rdfxml/reader.rb +2 -3
- data/lib/rdf/rdfxml/version.rb +2 -2
- data/lib/rdf/rdfxml/writer.rb +9 -15
- data/rdf-rdfxml.gemspec +2 -2
- data/spec/uri_spec.rb +6 -0
- data/spec/writer_spec.rb +5 -6
- metadata +3 -13
data/History.txt
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
@@ -5,4 +5,12 @@ class Nokogiri::XML::Node
|
|
5
5
|
ns = self.namespace ? self.namespace.href : RDF::XML.to_s
|
6
6
|
RDF::URI.intern(ns + self.node_name)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
|
+
def display_path
|
10
|
+
@display_path ||= case self
|
11
|
+
when Nokogiri::XML::Document then ""
|
12
|
+
when Nokogiri::XML::Element then parent ? "#{parent.display_path}/#{name}" : name
|
13
|
+
when Nokogiri::XML::Attr then "#{parent.display_path}@#{name}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/rdf/rdfxml/reader.rb
CHANGED
@@ -208,9 +208,8 @@ module RDF::RDFXML
|
|
208
208
|
# Figure out the document path, if it is a Nokogiri::XML::Element or Attribute
|
209
209
|
def node_path(node)
|
210
210
|
case node
|
211
|
-
when Nokogiri::XML::
|
212
|
-
|
213
|
-
else ""
|
211
|
+
when Nokogiri::XML::Node then node.display_path
|
212
|
+
else node.to_s
|
214
213
|
end
|
215
214
|
end
|
216
215
|
|
data/lib/rdf/rdfxml/version.rb
CHANGED
data/lib/rdf/rdfxml/writer.rb
CHANGED
@@ -393,21 +393,15 @@ module RDF::RDFXML
|
|
393
393
|
|
394
394
|
# No vocabulary found, invent one
|
395
395
|
# Add bindings for predicates not already having bindings
|
396
|
-
#
|
397
|
-
#
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
path.last.index("/") != 0
|
406
|
-
return false
|
407
|
-
end
|
408
|
-
path.last
|
409
|
-
end
|
410
|
-
base_uri = uri.to_s[0..-(local_name.length + 1)]
|
396
|
+
# From RDF/XML Syntax and Processing:
|
397
|
+
# An XML namespace-qualified name (QName) has restrictions on the legal characters such that not all property URIs can be expressed
|
398
|
+
# as these names. It is recommended that implementors of RDF serializers, in order to break a URI into a namespace name and a local
|
399
|
+
# name, split it after the last XML non-NCName character, ensuring that the first character of the name is a Letter or '_'. If the
|
400
|
+
# URI ends in a non-NCName character then throw a "this graph cannot be serialized in RDF/XML" exception or error.
|
401
|
+
separation = uri.to_s.rindex(%r{[^a-zA-Z_0-9-](?=[a-zA-Z_])})
|
402
|
+
return nil unless separation
|
403
|
+
base_uri = uri.to_s[0..separation]
|
404
|
+
local_name = uri.to_s[separation+1..-1]
|
411
405
|
@tmp_ns = @tmp_ns ? @tmp_ns.succ : "ns0"
|
412
406
|
add_debug "create namespace definition for #{uri}"
|
413
407
|
uri.vocab = RDF::Vocabulary(base_uri)
|
data/rdf-rdfxml.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rdf-rdfxml}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Gregg Kellogg"]
|
12
|
-
s.date = %q{2010-08-
|
12
|
+
s.date = %q{2010-08-31}
|
13
13
|
s.description = %q{ RDF::RDFXML is an RDF/XML reader and writer for Ruby using the RDF.rb library suite.
|
14
14
|
}
|
15
15
|
s.email = %q{gregg@kellogg-assoc.com}
|
data/spec/uri_spec.rb
CHANGED
@@ -99,6 +99,12 @@ describe RDF::URI do
|
|
99
99
|
end
|
100
100
|
end
|
101
101
|
|
102
|
+
context "Invalid Formats" do
|
103
|
+
it "should detect invalid URI formats" do
|
104
|
+
lambda {Addressable::URI.parse("_:test")}.should raise_error(Addressable::URI::InvalidURIError)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
102
108
|
context "vocab" do
|
103
109
|
RDF::Vocabulary.each do |v|
|
104
110
|
specify {v.foo.vocab.should == v}
|
data/spec/writer_spec.rb
CHANGED
@@ -323,11 +323,11 @@ describe "RDF::RDFXML::Writer" do
|
|
323
323
|
describe "with bnodes" do
|
324
324
|
it "should not generate nodeID attribute unless node is referenced as an object" do
|
325
325
|
@graph << [RDF::Node.new("a"), RDF::DC.title, "foo"]
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
326
|
+
check_xpaths(
|
327
|
+
serialize(:attributes => :untyped, :base => "http://release/"),
|
328
|
+
"/rdf:RDF/rdf:Description/@dc:title" => "foo",
|
329
|
+
"/rdf:RDF/rdf:Description/@rdf:nodeID" => false
|
330
|
+
)
|
331
331
|
end
|
332
332
|
|
333
333
|
it "should generate a nodeID attribute if node is referenced as an object" do
|
@@ -343,7 +343,6 @@ describe "RDF::RDFXML::Writer" do
|
|
343
343
|
end
|
344
344
|
|
345
345
|
it "should replicate rdfcore/rdfms-seq-representation" do
|
346
|
-
$verbose = true
|
347
346
|
graph_expect = parse(%(
|
348
347
|
<http://example.org/eg#eric> a [ <http://example.org/eg#intersectionOf> (<http://example.org/eg#Person> <http://example.org/eg#Male>)] .
|
349
348
|
), :reader => RDF::N3::Reader)
|
metadata
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rdf-rdfxml
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 85
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 2
|
9
|
-
-
|
10
|
-
|
11
|
-
version: 0.2.2.1
|
8
|
+
- 3
|
9
|
+
version: 0.2.3
|
12
10
|
platform: ruby
|
13
11
|
authors:
|
14
12
|
- Gregg Kellogg
|
@@ -16,7 +14,7 @@ autorequire:
|
|
16
14
|
bindir: bin
|
17
15
|
cert_chain: []
|
18
16
|
|
19
|
-
date: 2010-08-
|
17
|
+
date: 2010-08-31 00:00:00 -07:00
|
20
18
|
default_executable:
|
21
19
|
dependencies:
|
22
20
|
- !ruby/object:Gem::Dependency
|
@@ -27,7 +25,6 @@ dependencies:
|
|
27
25
|
requirements:
|
28
26
|
- - ">="
|
29
27
|
- !ruby/object:Gem::Version
|
30
|
-
hash: 19
|
31
28
|
segments:
|
32
29
|
- 0
|
33
30
|
- 2
|
@@ -43,7 +40,6 @@ dependencies:
|
|
43
40
|
requirements:
|
44
41
|
- - ">="
|
45
42
|
- !ruby/object:Gem::Version
|
46
|
-
hash: 29
|
47
43
|
segments:
|
48
44
|
- 1
|
49
45
|
- 3
|
@@ -59,7 +55,6 @@ dependencies:
|
|
59
55
|
requirements:
|
60
56
|
- - ">="
|
61
57
|
- !ruby/object:Gem::Version
|
62
|
-
hash: 3
|
63
58
|
segments:
|
64
59
|
- 0
|
65
60
|
version: "0"
|
@@ -73,7 +68,6 @@ dependencies:
|
|
73
68
|
requirements:
|
74
69
|
- - ">="
|
75
70
|
- !ruby/object:Gem::Version
|
76
|
-
hash: 19
|
77
71
|
segments:
|
78
72
|
- 0
|
79
73
|
- 2
|
@@ -89,7 +83,6 @@ dependencies:
|
|
89
83
|
requirements:
|
90
84
|
- - ">="
|
91
85
|
- !ruby/object:Gem::Version
|
92
|
-
hash: 3
|
93
86
|
segments:
|
94
87
|
- 0
|
95
88
|
version: "0"
|
@@ -103,7 +96,6 @@ dependencies:
|
|
103
96
|
requirements:
|
104
97
|
- - ">="
|
105
98
|
- !ruby/object:Gem::Version
|
106
|
-
hash: 3
|
107
99
|
segments:
|
108
100
|
- 0
|
109
101
|
version: "0"
|
@@ -532,7 +524,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
532
524
|
requirements:
|
533
525
|
- - ">="
|
534
526
|
- !ruby/object:Gem::Version
|
535
|
-
hash: 3
|
536
527
|
segments:
|
537
528
|
- 0
|
538
529
|
version: "0"
|
@@ -541,7 +532,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
541
532
|
requirements:
|
542
533
|
- - ">="
|
543
534
|
- !ruby/object:Gem::Version
|
544
|
-
hash: 3
|
545
535
|
segments:
|
546
536
|
- 0
|
547
537
|
version: "0"
|