rdf-rdfxml 0.2.2.1 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|