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. -
+ (Symbol) to_sym
Returns a symbol appropriate to use with RDF::Writer.for().
Instance Method Summary (collapse)
-
- (Hash{Symbol => RDF::URI}) base_uri
Returns the base URI used for this writer.
- - (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
-
- (Symbol) to_sym
Returns a symbol appropriate to use with RDF::Writer.for().
- - (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.
197 198 199 200 201 202 203 204 205 206 207 208 209 |
# File 'lib/rdf/writer.rb', line 197 def initialize(output = $stdout, = {}, &block) @output, @options = output, .dup @nodes, @node_id = {}, 0 if block_given? write_prologue case block.arity when 1 then block.call(self) else instance_eval(&block) end write_epilogue end end |
Instance Attribute Details
- (Hash) options (readonly)
Any additional options for this writer.
216 217 218 |
# File 'lib/rdf/writer.rb', line 216 def @options 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 = self.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 158 159 |
# File 'lib/rdf/writer.rb', line 153 def self.open(filename, = {}, &block) File.open(filename, 'wb') do |file| = .dup [:file_name] ||= filename self.for([:format] || ).new(file, , &block) end end |
+ (Symbol) to_sym
Returns a symbol appropriate to use with RDF::Writer.for()
164 165 166 167 168 169 |
# File 'lib/rdf/writer.rb', line 164 def self.to_sym elements = self.to_s.split("::") sym = elements.pop sym = elements.pop if sym == 'Writer' sym.downcase.to_s.to_sym end |
Instance Method Details
- (Hash{Symbol => RDF::URI}) base_uri
Returns the base URI used for this writer.
226 227 228 |
# File 'lib/rdf/writer.rb', line 226 def base_uri @options[:base_uri] end |
- (String) escaped(string) (protected)
445 446 447 448 |
# File 'lib/rdf/writer.rb', line 445 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.
284 285 286 287 |
# File 'lib/rdf/writer.rb', line 284 def flush @output.flush if @output.respond_to?(:flush) self end |
- (String) format_list(value, options = {})
410 411 412 |
# File 'lib/rdf/writer.rb', line 410 def format_list(value, = {}) format_term(value.subject, ) end |
- (String) format_literal(value, options = {})
400 401 402 |
# File 'lib/rdf/writer.rb', line 400 def format_literal(value, = {}) raise NotImplementedError.new("#{self.class}#format_literal") # override in subclasses end |
- (String) format_node(value, options = {})
380 381 382 |
# File 'lib/rdf/writer.rb', line 380 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
362 363 364 365 366 367 368 369 370 371 |
# File 'lib/rdf/writer.rb', line 362 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 = {})
390 391 392 |
# File 'lib/rdf/writer.rb', line 390 def format_uri(value, = {}) raise NotImplementedError.new("#{self.class}#format_uri") # override in subclasses end |
- (String) node_id (protected)
438 439 440 |
# File 'lib/rdf/writer.rb', line 438 def node_id "_:n#{@node_id += 1}" end |
- (RDF::URI) prefix(name, uri) - (RDF::URI) prefix(name) Also known as: prefix!
Defines the given named URI prefix for this writer.
274 275 276 277 |
# File 'lib/rdf/writer.rb', line 274 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.
238 239 240 |
# File 'lib/rdf/writer.rb', line 238 def prefixes @options[:prefixes] ||= {} end |
- (Hash{Symbol => RDF::URI}) prefixes=(prefixes)
Defines the given URI prefixes for this writer.
253 254 255 |
# File 'lib/rdf/writer.rb', line 253 def prefixes=(prefixes) @options[:prefixes] = prefixes end |
- puts(*args) (protected)
This method returns an undefined value.
418 419 420 |
# File 'lib/rdf/writer.rb', line 418 def puts(*args) @output.puts(*args) end |
- (String) quoted(string) (protected)
453 454 455 |
# File 'lib/rdf/writer.rb', line 453 def quoted(string) "\"#{string}\"" end |
- (Symbol) to_sym
Returns a symbol appropriate to use with RDF::Writer.for()
174 175 176 |
# File 'lib/rdf/writer.rb', line 174 def to_sym self.class.to_sym end |
- (String) uri_for(uriref) (protected)
425 426 427 428 429 430 431 432 433 434 |
# File 'lib/rdf/writer.rb', line 425 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
308 309 310 |
# File 'lib/rdf/writer.rb', line 308 def write_comment(text) self end |
- write_epilogue
This method returns an undefined value.
self
300 301 302 |
# File 'lib/rdf/writer.rb', line 300 def write_epilogue self end |
- write_graph(graph)
replace by RDF::Writable#insert_graph
This method returns an undefined value.
self
316 317 318 319 |
# File 'lib/rdf/writer.rb', line 316 def write_graph(graph) graph.each_triple { |*triple| write_triple(*triple) } self end |
- write_prologue
This method returns an undefined value.
self
293 294 295 |
# File 'lib/rdf/writer.rb', line 293 def write_prologue self end |
- write_statement(statement) Also known as: insert_statement
This method returns an undefined value.
self
333 334 335 336 |
# File 'lib/rdf/writer.rb', line 333 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
325 326 327 328 |
# File 'lib/rdf/writer.rb', line 325 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
354 355 356 |
# File 'lib/rdf/writer.rb', line 354 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
342 343 344 345 |
# File 'lib/rdf/writer.rb', line 342 def write_triples(*triples) triples.each { |triple| write_triple(*triple) } self end |