class RDF::Writer

The base class for RDF serializers.

@example Loading an RDF writer implementation

require 'rdf/ntriples'

@example Iterating over known RDF writer classes

RDF::Writer.each { |klass| puts klass.name }

@example Obtaining an RDF writer class

RDF::Writer.for(:ntriples)     #=> RDF::NTriples::Writer
RDF::Writer.for("spec/data/output.nt")
RDF::Writer.for(file_name:      "spec/data/output.nt")
RDF::Writer.for(file_extension: "nt")
RDF::Writer.for(content_type:   "application/n-triples")

@example Instantiating an RDF writer class

RDF::Writer.for(:ntriples).new($stdout) { |writer| ... }

@example Serializing RDF statements into a file

RDF::Writer.open("spec/data/output.nt") do |writer|
  graph.each_statement do |statement|
    writer << statement
  end
end

@example Serializing RDF statements into a string

RDF::Writer.for(:ntriples).buffer do |writer|
  graph.each_statement do |statement|
    writer << statement
  end
end

@example Detecting invalid output

logger = Logger.new([])
RDF::Writer.for(:ntriples).buffer(logger: logger) do |writer|
  statement = RDF::Statement.new(
    RDF::URI("https://rubygems.org/gems/rdf"),
    RDF::URI("http://purl.org/dc/terms/creator"),
    nil)
  writer << statement
end # => RDF::WriterError
logger.empty? => false

@abstract @see RDF::Format @see RDF::Reader