class RDF::Raptor::FFI::Writer
FFI
writer implementation.
Constants
- ERROR_HANDLER
- WARNING_HANDLER
Attributes
serializer[R]
The Raptor
serializer instance.
@return [V2::Serializer]
Public Class Methods
new(output = $stdout, **options, &block)
click to toggle source
Initializes the FFI
writer instance.
@param [IO, File] output @param [Hash{Symbol => Object}] options
any additional options (see `RDF::Writer#initialize`)
@yield [writer] ‘self` @yieldparam [RDF::Writer] writer @yieldreturn [void] ignored
Calls superclass method
# File lib/rdf/raptor/ffi.rb, line 159 def initialize(output = $stdout, **options, &block) @format = self.class.format.rapper_format @serializer = V2::Serializer.new(@format) @serializer.error_handler = ERROR_HANDLER @serializer.warning_handler = WARNING_HANDLER @serializer.start_to(output, **options) super end
serialize(value)
click to toggle source
# File lib/rdf/raptor/ffi.rb, line 182 def self.serialize(value) output = StringIO.new writer = new(output) case value when nil then nil when FalseClass then value.to_s when RDF::Statement writer.write_triple(statement.subject, statement.predicate, statement.object) when RDF::Term writer.write_term(value) else raise ArgumentError, "expected an RDF::Statement or RDF::Term, but got #{value.inspect}" end output.to_s end
Public Instance Methods
write_epilogue()
click to toggle source
@return [void] @see RDF::Writer#write_epilogue
Calls superclass method
# File lib/rdf/raptor/ffi.rb, line 224 def write_epilogue @serializer.finish super end
write_prologue()
click to toggle source
@return [void] @see RDF::Writer#write_prologue
Calls superclass method
# File lib/rdf/raptor/ffi.rb, line 216 def write_prologue @serializer.prefix(self.prefixes) super end
write_term(value)
click to toggle source
# File lib/rdf/raptor/ffi.rb, line 209 def write_term(value) raise NotImplementedError end
write_triple(subject, predicate, object)
click to toggle source
@param [RDF::Resource] subject @param [RDF::URI] predicate @param [RDF::Term] object @return [void] @see RDF::Writer#write_triple
# File lib/rdf/raptor/ffi.rb, line 205 def write_triple(subject, predicate, object) @serializer.serialize_triple(subject, predicate, object) end