rdf-trix 0.2.0 → 0.3.0

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/CREDITS ADDED
File without changes
data/README CHANGED
@@ -19,7 +19,7 @@ Documentation
19
19
  Dependencies
20
20
  ------------
21
21
 
22
- * [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.2.0)
22
+ * [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.3.0)
23
23
  * [REXML](http://ruby-doc.org/stdlib/libdoc/rexml/rdoc/) (>= 3.1.7),
24
24
  [LibXML-Ruby](http://rubygems.org/gems/libxml-ruby) (>= 1.1.4), or
25
25
  [Nokogiri](http://rubygems.org/gems/nokogiri) (>= 1.4.2)
@@ -39,21 +39,31 @@ To get a local working copy of the development repository, do:
39
39
 
40
40
  % git clone git://github.com/bendiken/rdf-trix.git
41
41
 
42
- Alternatively, you can download the latest development version as a tarball
43
- as follows:
42
+ Alternatively, download the latest development version as a tarball as
43
+ follows:
44
44
 
45
45
  % wget http://github.com/bendiken/rdf-trix/tarball/master
46
46
 
47
+ Mailing List
48
+ ------------
49
+
50
+ * <http://lists.w3.org/Archives/Public/public-rdf-ruby/>
51
+
47
52
  Author
48
53
  ------
49
54
 
50
- * [Arto Bendiken](mailto:arto.bendiken@gmail.com) - <http://ar.to/>
55
+ * [Arto Bendiken](http://github.com/bendiken) - <http://ar.to/>
56
+
57
+ Contributors
58
+ ------------
59
+
60
+ Refer to the accompanying {file:CREDITS} file.
51
61
 
52
62
  License
53
63
  -------
54
64
 
55
- `RDF::TriX` is free and unencumbered public domain software. For more
56
- information, see <http://unlicense.org/> or the accompanying UNLICENSE file.
65
+ This is free and unencumbered public domain software. For more information,
66
+ see <http://unlicense.org/> or the accompanying {file:UNLICENSE} file.
57
67
 
58
68
  [RDF.rb]: http://rdf.rubyforge.org/
59
69
  [TriX]: http://www.w3.org/2004/03/trix/
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -2,6 +2,9 @@ module RDF::TriX
2
2
  ##
3
3
  # TriX format specification.
4
4
  #
5
+ # @example Loading TriX format support
6
+ # require 'rdf/trix'
7
+ #
5
8
  # @example Obtaining a TriX format class
6
9
  # RDF::Format.for(:trix) #=> RDF::TriX::Format
7
10
  # RDF::Format.for("etc/doap.xml")
@@ -18,5 +21,5 @@ module RDF::TriX
18
21
  writer { RDF::TriX::Writer }
19
22
 
20
23
  XMLNS = 'http://www.w3.org/2004/03/trix/trix-1/'
21
- end # class Format
22
- end # module RDF::TriX
24
+ end # Format
25
+ end # RDF::TriX
@@ -33,28 +33,26 @@ module RDF::TriX
33
33
  # @private
34
34
  # @see RDF::Reader#each_graph
35
35
  def each_graph(&block)
36
- unless block_given?
37
- enum_for(:each_graph)
38
- else
36
+ if block_given?
39
37
  @xml.find('//trix:graph', OPTIONS).each do |graph_element|
40
38
  graph = RDF::Graph.new(read_context(graph_element))
41
39
  read_statements(graph_element) { |statement| graph << statement }
42
40
  block.call(graph)
43
41
  end
44
42
  end
43
+ enum_graph
45
44
  end
46
45
 
47
46
  ##
48
47
  # @private
49
48
  # @see RDF::Reader#each_statement
50
49
  def each_statement(&block)
51
- unless block_given?
52
- enum_for(:each_statement)
53
- else
50
+ if block_given?
54
51
  @xml.find('//trix:graph', OPTIONS).each do |graph_element|
55
52
  read_statements(graph_element, &block)
56
53
  end
57
54
  end
55
+ enum_statement
58
56
  end
59
57
 
60
58
  protected
@@ -77,6 +75,6 @@ module RDF::TriX
77
75
  block.call(RDF::Statement.new(*triple))
78
76
  end
79
77
  end
80
- end # module LibXML
81
- end # class Reader
82
- end # module RDF::TriX
78
+ end # LibXML
79
+ end # Reader
80
+ end # RDF::TriX
@@ -29,28 +29,26 @@ module RDF::TriX
29
29
  # @private
30
30
  # @see RDF::Reader#each_graph
31
31
  def each_graph(&block)
32
- unless block_given?
33
- enum_for(:each_graph)
34
- else
32
+ if block_given?
35
33
  @xml.xpath('//trix:graph', OPTIONS).each do |graph_element|
36
34
  graph = RDF::Graph.new(read_context(graph_element))
37
35
  read_statements(graph_element) { |statement| graph << statement }
38
36
  block.call(graph)
39
37
  end
40
38
  end
39
+ enum_graph
41
40
  end
42
41
 
43
42
  ##
44
43
  # @private
45
44
  # @see RDF::Reader#each_statement
46
45
  def each_statement(&block)
47
- unless block_given?
48
- enum_for(:each_statement)
49
- else
46
+ if block_given?
50
47
  @xml.xpath('//trix:graph', OPTIONS).each do |graph_element|
51
48
  read_statements(graph_element, &block)
52
49
  end
53
50
  end
51
+ enum_statement
54
52
  end
55
53
 
56
54
  protected
@@ -73,6 +71,6 @@ module RDF::TriX
73
71
  block.call(RDF::Statement.new(*triple))
74
72
  end
75
73
  end
76
- end # module Nokogiri
77
- end # class Reader
78
- end # module RDF::TriX
74
+ end # Nokogiri
75
+ end # Reader
76
+ end # RDF::TriX
@@ -29,28 +29,26 @@ module RDF::TriX
29
29
  # @private
30
30
  # @see RDF::Reader#each_graph
31
31
  def each_graph(&block)
32
- unless block_given?
33
- enum_for(:each_graph)
34
- else
32
+ if block_given?
35
33
  @xml.elements.each('TriX/graph') do |graph_element|
36
34
  graph = RDF::Graph.new(read_context(graph_element))
37
35
  read_statements(graph_element) { |statement| graph << statement }
38
36
  block.call(graph)
39
37
  end
40
38
  end
39
+ enum_graph
41
40
  end
42
41
 
43
42
  ##
44
43
  # @private
45
44
  # @see RDF::Reader#each_statement
46
45
  def each_statement(&block)
47
- unless block_given?
48
- enum_for(:each_statement)
49
- else
46
+ if block_given?
50
47
  @xml.elements.each('TriX/graph') do |graph_element|
51
48
  read_statements(graph_element, &block)
52
49
  end
53
50
  end
51
+ enum_statement
54
52
  end
55
53
 
56
54
  protected
@@ -73,6 +71,6 @@ module RDF::TriX
73
71
  block.call(RDF::Statement.new(*triple))
74
72
  end
75
73
  end
76
- end # module REXML
77
- end # class Reader
78
- end # module RDF::TriX
74
+ end # REXML
75
+ end # Reader
76
+ end # RDF::TriX
@@ -12,6 +12,9 @@ module RDF::TriX
12
12
  # [LibXML]: http://libxml.rubyforge.org/rdoc/
13
13
  # [Nokogiri]: http://nokogiri.org/
14
14
  #
15
+ # @example Loading TriX parsing support
16
+ # require 'rdf/trix'
17
+ #
15
18
  # @example Obtaining a TriX reader class
16
19
  # RDF::Reader.for(:trix) #=> RDF::TriX::Reader
17
20
  # RDF::Reader.for("etc/doap.xml")
@@ -56,11 +59,13 @@ module RDF::TriX
56
59
  ##
57
60
  # Initializes the TriX reader instance.
58
61
  #
59
- # @param [IO, File, String] input
62
+ # @param [IO, File, String] input
60
63
  # @param [Hash{Symbol => Object}] options
61
- # @option options [Symbol] :library (:nokogiri, :libxml, or :rexml)
62
- # @yield [reader]
63
- # @yieldparam [Reader] reader
64
+ # any additional options (see `RDF::Reader#initialize`)
65
+ # @option options [Symbol] :library (:nokogiri, :libxml, or :rexml)
66
+ # @yield [reader] `self`
67
+ # @yieldparam [RDF::Reader] reader
68
+ # @yieldreturn [void] ignored
64
69
  def initialize(input = $stdin, options = {}, &block)
65
70
  super do
66
71
  @library = case options[:library]
@@ -92,7 +97,12 @@ module RDF::TriX
92
97
  self.extend(@implementation)
93
98
 
94
99
  initialize_xml(options)
95
- block.call(self) if block_given?
100
+ if block_given?
101
+ case block.arity
102
+ when 0 then instance_eval(&block)
103
+ else block.call(self)
104
+ end
105
+ end
96
106
  end
97
107
  end
98
108
 
@@ -100,32 +110,30 @@ module RDF::TriX
100
110
  # @private
101
111
  # @see RDF::Reader#each_triple
102
112
  def each_triple(&block)
103
- unless block_given?
104
- enum_for(:each_triple)
105
- else
113
+ if block_given?
106
114
  each_statement do |statement|
107
115
  block.call(*statement.to_triple)
108
116
  end
109
117
  end
118
+ enum_triple
110
119
  end
111
120
 
112
121
  ##
113
122
  # @private
114
123
  # @see RDF::Reader#each_quad
115
124
  def each_quad(&block)
116
- unless block_given?
117
- enum_for(:each_quad)
118
- else
125
+ if block_given?
119
126
  each_statement do |statement|
120
127
  block.call(*statement.to_quad)
121
128
  end
122
129
  end
130
+ enum_quad
123
131
  end
124
132
 
125
133
  ##
126
134
  # Returns the RDF value of the given TriX element.
127
135
  #
128
- # @param [String] name
136
+ # @param [String] name
129
137
  # @param [Hash{String => Object}] attributes
130
138
  # @param [String] content
131
139
  # @return [RDF::Value]
@@ -134,18 +142,28 @@ module RDF::TriX
134
142
  when :id
135
143
  RDF::Node.new(content.strip)
136
144
  when :uri
137
- RDF::URI.new(content.strip)
145
+ uri = RDF::URI.new(content.strip) # TODO: interned URIs
146
+ uri.validate! if validate?
147
+ uri.canonicalize! if canonicalize?
148
+ uri
138
149
  when :typedLiteral
139
- RDF::Literal.new(content, :datatype => attributes['datatype'])
150
+ literal = RDF::Literal.new(content, :datatype => attributes['datatype'])
151
+ literal.validate! if validate?
152
+ literal.canonicalize! if canonicalize?
153
+ literal
140
154
  when :plainLiteral
141
- if lang = attributes['xml:lang'] || attributes['lang']
142
- RDF::Literal.new(content, :language => lang)
143
- else
144
- RDF::Literal.new(content)
155
+ literal = case
156
+ when lang = attributes['xml:lang'] || attributes['lang']
157
+ RDF::Literal.new(content, :language => lang)
158
+ else
159
+ RDF::Literal.new(content)
145
160
  end
161
+ literal.validate! if validate?
162
+ literal.canonicalize! if canonicalize?
163
+ literal
146
164
  else
147
- # TODO: raise error
165
+ raise RDF::ReaderError, "expected element name to be 'id', 'uri', 'typedLiteral', or 'plainLiteral', but got #{name.inspect}"
148
166
  end
149
167
  end
150
- end # class Reader
151
- end # module RDF::TriX
168
+ end # Reader
169
+ end # RDF::TriX
@@ -1,7 +1,7 @@
1
1
  module RDF module TriX
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 2
4
+ MINOR = 3
5
5
  TINY = 0
6
6
  EXTRA = nil
7
7
 
@@ -88,6 +88,6 @@ module RDF::TriX
88
88
  block.call(element) if block_given?
89
89
  element
90
90
  end
91
- end # module Nokogiri
92
- end # class Writer
93
- end # module RDF::TriX
91
+ end # Nokogiri
92
+ end # Writer
93
+ end # RDF::TriX
@@ -88,6 +88,6 @@ module RDF::TriX
88
88
  block.call(element) if block_given?
89
89
  element
90
90
  end
91
- end # module REXML
92
- end # class Writer
93
- end # module RDF::TriX
91
+ end # REXML
92
+ end # Writer
93
+ end # RDF::TriX
@@ -12,6 +12,9 @@ module RDF::TriX
12
12
  # [LibXML]: http://libxml.rubyforge.org/rdoc/
13
13
  # [Nokogiri]: http://nokogiri.org/
14
14
  #
15
+ # @example Loading TriX serialization support
16
+ # require 'rdf/trix'
17
+ #
15
18
  # @example Obtaining a TriX writer class
16
19
  # RDF::Writer.for(:trix) #=> RDF::TriX::Writer
17
20
  # RDF::Writer.for("etc/test.xml")
@@ -58,13 +61,15 @@ module RDF::TriX
58
61
  ##
59
62
  # Initializes the TriX writer instance.
60
63
  #
61
- # @param [IO, File] output
64
+ # @param [IO, File] output
62
65
  # @param [Hash{Symbol => Object}] options
66
+ # any additional options (see `RDF::Writer#initialize`)
63
67
  # @option options [Symbol] :library (:nokogiri or :rexml)
64
68
  # @option options [String, #to_s] :encoding ('utf-8')
65
69
  # @option options [Integer] :indent (2)
66
- # @yield [writer]
67
- # @yieldparam [Writer] writer
70
+ # @yield [writer] `self`
71
+ # @yieldparam [RDF::Writer] writer
72
+ # @yieldreturn [void] ignored
68
73
  def initialize(output = $stdout, options = {}, &block)
69
74
  @context = nil
70
75
  @nesting = 0
@@ -219,7 +224,6 @@ module RDF::TriX
219
224
  # @param [Hash{Symbol => Object}] options
220
225
  # @return [Element]
221
226
  def format_literal(value, options = {})
222
- value = RDF::Literal.new(value) unless value.is_a?(RDF::Literal) # FIXME: remove after RDF.rb 0.2.1
223
227
  case
224
228
  when value.has_datatype?
225
229
  create_element(:typedLiteral, value.value.to_s, 'datatype' => value.datatype.to_s)
@@ -229,8 +233,5 @@ module RDF::TriX
229
233
  create_element(:plainLiteral, value.value.to_s)
230
234
  end
231
235
  end
232
-
233
- alias_method :insert_graph, :write_graph # FIXME: remove after RDF.rb 0.2.1
234
- alias_method :insert_statement, :write_statement # FIXME: remove after RDF.rb 0.2.1
235
- end # class Writer
236
- end # module RDF::TriX
236
+ end # Writer
237
+ end # RDF::TriX
data/lib/rdf/trix.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'rdf'
1
+ require 'rdf' # @see http://rubygems.org/gems/rdf
2
2
 
3
3
  module RDF
4
4
  ##
@@ -32,5 +32,5 @@ module RDF
32
32
  autoload :Reader, 'rdf/trix/reader'
33
33
  autoload :Writer, 'rdf/trix/writer'
34
34
  autoload :VERSION, 'rdf/trix/version'
35
- end # module TriX
36
- end # module RDF
35
+ end # TriX
36
+ end # RDF
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 2
7
+ - 3
8
8
  - 0
9
- version: 0.2.0
9
+ version: 0.3.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Arto Bendiken
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-22 00:00:00 +02:00
17
+ date: 2010-12-27 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -26,9 +26,9 @@ dependencies:
26
26
  - !ruby/object:Gem::Version
27
27
  segments:
28
28
  - 0
29
- - 2
29
+ - 3
30
30
  - 0
31
- version: 0.2.0
31
+ version: 0.3.0
32
32
  type: :runtime
33
33
  version_requirements: *id001
34
34
  - !ruby/object:Gem::Dependency
@@ -82,9 +82,9 @@ dependencies:
82
82
  - !ruby/object:Gem::Version
83
83
  segments:
84
84
  - 0
85
- - 5
86
85
  - 6
87
- version: 0.5.6
86
+ - 0
87
+ version: 0.6.0
88
88
  type: :development
89
89
  version_requirements: *id005
90
90
  - !ruby/object:Gem::Dependency
@@ -95,10 +95,10 @@ dependencies:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  segments:
98
+ - 2
98
99
  - 1
99
- - 3
100
100
  - 0
101
- version: 1.3.0
101
+ version: 2.1.0
102
102
  type: :development
103
103
  version_requirements: *id006
104
104
  - !ruby/object:Gem::Dependency
@@ -110,9 +110,9 @@ dependencies:
110
110
  - !ruby/object:Gem::Version
111
111
  segments:
112
112
  - 0
113
- - 2
113
+ - 3
114
114
  - 0
115
- version: 0.2.0
115
+ version: 0.3.0
116
116
  type: :development
117
117
  version_requirements: *id007
118
118
  description: RDF.rb plugin for parsing/serializing TriX data.
@@ -125,6 +125,7 @@ extra_rdoc_files: []
125
125
 
126
126
  files:
127
127
  - AUTHORS
128
+ - CREDITS
128
129
  - README
129
130
  - UNLICENSE
130
131
  - VERSION
@@ -165,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
165
166
  - 0
166
167
  version: "0"
167
168
  requirements:
168
- - REXML (>= 3.1.7), LibXML-Ruby (>= 1.1.4) or Nokogiri (>= 1.4.2)
169
+ - REXML (>= 3.1.7), LibXML-Ruby (>= 1.1.4), or Nokogiri (>= 1.4.2)
169
170
  rubyforge_project: rdf
170
171
  rubygems_version: 1.3.6
171
172
  signing_key: