Class: RDF::Writer Abstract
- Inherits:
-
Object
- Object
- RDF::Writer
- Extended by:
- Enumerable, Util::Aliasing::LateBound
- Includes:
- Writable
- Defined in:
- lib/rdf/writer.rb
Overview
The base class for RDF serializers.
Direct Known Subclasses
Instance Attribute Summary (collapse)
-
- (Hash) options
readonly
Any additional options for this writer.
Class Method Summary (collapse)
-
+ (String) buffer(*args) {|writer| ... }
Buffers output into a string buffer.
- + dump(data, io = nil, options = {})
-
+ (Enumerator) each {|klass| ... }
Enumerates known RDF writer classes.
-
+ (Class) for(options = {})
Finds an RDF writer class based on the given criteria.
-
+ (Class) format(klass = nil)
(also: format_class)
Retrieves the RDF serialization format class for this writer class.
-
+ (RDF::Writer) open(filename, options = {}, &block)
Writes output to the given
filename.
Instance Method Summary (collapse)
- - (String) escaped(string) protected
-
- flush
(also: #flush!)
Flushes the underlying output buffer.
- - (String) format_list(value, options = {}) Abstract
- - (String) format_literal(value, options = {}) Abstract
- - (String) format_node(value, options = {}) Abstract
- - (String) format_term(term, options = {}) (also: #format_value)
- - (String) format_uri(value, options = {}) Abstract
-
- (Writer) initialize(output = $stdout, options = {}) {|writer| ... }
constructor
Initializes the writer.
- - (String) node_id protected
-
- (RDF::URI) prefix(name, uri = nil)
(also: #prefix!)
Defines the given named URI prefix for this writer.
-
- (Hash{Symbol => RDF::URI}) prefixes
Returns the URI prefixes currently defined for this writer.
-
- (Hash{Symbol => RDF::URI}) prefixes=(prefixes)
Defines the given URI prefixes for this writer.
- - puts(*args) protected
- - (String) quoted(string) protected
- - (String) uri_for(uriref) protected
-
- write_comment(text)
Abstract
self. -
- write_epilogue
Abstract
self. -
- write_graph(graph)
Deprecated
Deprecated.
replace by
RDF::Writable#insert_graph -
- write_prologue
Abstract
self. -
- write_statement(statement)
(also: #insert_statement)
self. -
- write_statements(*statements)
Deprecated
Deprecated.
replace by
RDF::Writable#insert_statements -
- write_triple(subject, predicate, object)
Abstract
self. -
- write_triples(*triples)
self.
Methods included from Util::Aliasing::LateBound
Methods included from Writable
#<<, #insert, #insert_graph, #insert_reader, #insert_statements, #writable?
Constructor Details
- (Writer) initialize(output = $stdout, options = {}) {|writer| ... }
Initializes the writer.
178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'lib/rdf/writer.rb', line 178 def initialize(output = $stdout, = {}, &block) @output, = output, .dup @nodes, @node_id = {}, 0 if block_given? write_prologue case block.arity when 0 then instance_eval(&block) else block.call(self) end write_epilogue end end |
Instance Attribute Details
- (Hash) options (readonly)
Any additional options for this writer.
197 198 199 |
# File 'lib/rdf/writer.rb', line 197 def end |
Class Method Details
+ (String) buffer(*args) {|writer| ... }
Buffers output into a string buffer.
138 139 140 141 142 143 |
# File 'lib/rdf/writer.rb', line 138 def self.buffer(*args, &block) StringIO.open do |buffer| self.new(buffer, *args) { |writer| block.call(writer) } buffer.string end end |
+ dump(data, io = nil, options = {})
This method returns an undefined value.
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/rdf/writer.rb', line 112 def self.dump(data, io = nil, = {}) io = File.open(io, 'w') if io.is_a?(String) method = data.respond_to?(:each_statement) ? :each_statement : :each if io new(io, ) do |writer| data.send(method) do |statement| writer << statement end writer.flush end else buffer() do |writer| data.send(method) do |statement| writer << statement end end end end |
+ (Enumerator) each {|klass| ... }
Enumerates known RDF writer classes.
50 51 52 |
# File 'lib/rdf/writer.rb', line 50 def self.each(&block) @@subclasses.each(&block) end |
+ (Class) for(format) + (Class) for(filename) + (Class) for(options = {})
Finds an RDF writer class based on the given criteria.
79 80 81 82 83 |
# File 'lib/rdf/writer.rb', line 79 def self.for( = {}) if format = Format.for() format.writer end end |
+ (Class) format(klass = nil) Also known as: format_class
Retrieves the RDF serialization format class for this writer class.
89 90 91 92 93 94 95 96 97 98 |
# File 'lib/rdf/writer.rb', line 89 def self.format(klass = nil) if klass.nil? Format.each do |format| if format.writer == self return format end end nil # not found end end |
+ (RDF::Writer) open(filename, options = {}, &block)
Writes output to the given filename.
153 154 155 156 157 |
# File 'lib/rdf/writer.rb', line 153 def self.open(filename, = {}, &block) File.open(filename, 'wb') do |file| self.for([:format] || filename).new(file, , &block) end end |
Instance Method Details
- (String) escaped(string) (protected)
414 415 416 417 |
# File 'lib/rdf/writer.rb', line 414 def escaped(string) string.gsub('\\', '\\\\').gsub("\t", '\\t'). gsub("\n", '\\n').gsub("\r", '\\r').gsub('"', '\\"') end |
- flush Also known as: flush!
This method returns an undefined value.
Flushes the underlying output buffer.
253 254 255 256 |
# File 'lib/rdf/writer.rb', line 253 def flush @output.flush if @output.respond_to?(:flush) self end |
- (String) format_list(value, options = {})
379 380 381 |
# File 'lib/rdf/writer.rb', line 379 def format_list(value, = {}) format_term(value.subject, ) end |
- (String) format_literal(value, options = {})
369 370 371 |
# File 'lib/rdf/writer.rb', line 369 def format_literal(value, = {}) raise NotImplementedError.new("#{self.class}#format_literal") # override in subclasses end |
- (String) format_node(value, options = {})
349 350 351 |
# File 'lib/rdf/writer.rb', line 349 def format_node(value, = {}) raise NotImplementedError.new("#{self.class}#format_node") # override in subclasses end |
- (String) format_term(term, options = {}) Also known as: format_value
331 332 333 334 335 336 337 338 339 340 |
# File 'lib/rdf/writer.rb', line 331 def format_term(term, = {}) case term when String then format_literal(RDF::Literal(term, ), ) when RDF::List then format_list(term, ) when RDF::Literal then format_literal(term, ) when RDF::URI then format_uri(term, ) when RDF::Node then format_node(term, ) else nil end end |
- (String) format_uri(value, options = {})
359 360 361 |
# File 'lib/rdf/writer.rb', line 359 def format_uri(value, = {}) raise NotImplementedError.new("#{self.class}#format_uri") # override in subclasses end |
- (String) node_id (protected)
407 408 409 |
# File 'lib/rdf/writer.rb', line 407 def node_id "_:n#{@node_id += 1}" end |
- (Object) prefix(name, uri) - (Object) prefix(name) Also known as: prefix!
Defines the given named URI prefix for this writer.
243 244 245 246 |
# File 'lib/rdf/writer.rb', line 243 def prefix(name, uri = nil) name = name.to_s.empty? ? nil : (name.respond_to?(:to_sym) ? name.to_sym : name.to_s.to_sym) uri.nil? ? prefixes[name] : prefixes[name] = uri end |
- (Hash{Symbol => RDF::URI}) prefixes
Returns the URI prefixes currently defined for this writer.
207 208 209 |
# File 'lib/rdf/writer.rb', line 207 def prefixes [:prefixes] ||= {} end |
- (Hash{Symbol => RDF::URI}) prefixes=(prefixes)
Defines the given URI prefixes for this writer.
222 223 224 |
# File 'lib/rdf/writer.rb', line 222 def prefixes=(prefixes) [:prefixes] = prefixes end |
- puts(*args) (protected)
This method returns an undefined value.
387 388 389 |
# File 'lib/rdf/writer.rb', line 387 def puts(*args) @output.puts(*args) end |
- (String) quoted(string) (protected)
422 423 424 |
# File 'lib/rdf/writer.rb', line 422 def quoted(string) "\"#{string}\"" end |
- (String) uri_for(uriref) (protected)
394 395 396 397 398 399 400 401 402 403 |
# File 'lib/rdf/writer.rb', line 394 def uri_for(uriref) case when uriref.is_a?(RDF::Node) @nodes[uriref] when uriref.respond_to?(:to_uri) uriref.to_uri.to_s else uriref.to_s end end |
- write_comment(text)
This method returns an undefined value.
self
277 278 279 |
# File 'lib/rdf/writer.rb', line 277 def write_comment(text) self end |
- write_epilogue
This method returns an undefined value.
self
269 270 271 |
# File 'lib/rdf/writer.rb', line 269 def write_epilogue self end |
- write_graph(graph)
replace by RDF::Writable#insert_graph
This method returns an undefined value.
self
285 286 287 288 |
# File 'lib/rdf/writer.rb', line 285 def write_graph(graph) graph.each_triple { |*triple| write_triple(*triple) } self end |
- write_prologue
This method returns an undefined value.
self
262 263 264 |
# File 'lib/rdf/writer.rb', line 262 def write_prologue self end |
- write_statement(statement) Also known as: insert_statement
This method returns an undefined value.
self
302 303 304 305 |
# File 'lib/rdf/writer.rb', line 302 def write_statement(statement) write_triple(*statement.to_triple) self end |
- write_statements(*statements)
replace by RDF::Writable#insert_statements
This method returns an undefined value.
self
294 295 296 297 |
# File 'lib/rdf/writer.rb', line 294 def write_statements(*statements) statements.flatten.each { |statement| write_statement(statement) } self end |
- write_triple(subject, predicate, object)
This method returns an undefined value.
self
323 324 325 |
# File 'lib/rdf/writer.rb', line 323 def write_triple(subject, predicate, object) raise NotImplementedError.new("#{self.class}#write_triple") # override in subclasses end |
- write_triples(*triples)
This method returns an undefined value.
self
311 312 313 314 |
# File 'lib/rdf/writer.rb', line 311 def write_triples(*triples) triples.each { |triple| write_triple(*triple) } self end |