Sha256: e3cb7b14754e17803d4901300ea706950e7c707bc65f0a5495aba05d6c16b6e7

Contents?: true

Size: 1.5 KB

Versions: 6

Compression:

Stored size: 1.5 KB

Contents

require 'rdf/turtle/terminals'

module RDF::Turtle
  ##
  # Streaming writer interface
  # @author [Gregg Kellogg](http://greggkellogg.net/)
  module StreamingWriter
    ##
    # Write out declarations
    # @return [void] `self`
    def stream_prologue
      if @options[:standard_prefixes]
        RDF::Vocabulary.each do |vocab|
          pfx = vocab.__name__.to_s.split('::').last.downcase
          prefix(pfx, vocab.to_uri)
        end
      end
      preprocess
      start_document
      @output.puts ""
      self
    end

    ##
    # Write out a statement, retaining current
    # `subject` and `predicate` to create more compact output
    # @return [void] `self`
    def stream_statement(statement)
      if statement.subject != @streaming_subject
        @output.puts ' .' if @streaming_subject
        @streaming_subject, @streaming_predicate = statement.subject, statement.predicate
        @output.write "#{format_term(statement.subject, options)} "
        @output.write "#{format_term(statement.predicate, options)} "
      elsif statement.predicate != @streaming_predicate
        @streaming_predicate = statement.predicate
        @output.write ";\n#{indent(1)}#{format_term(statement.predicate, options)} "
      else
        @output.write ",\n#{indent(2)}"
      end
      @output.write("#{format_term(statement.object, options)}")
    end

    ##
    # Complete open statements
    # @return [void] `self`
    def stream_epilogue
      @output.puts ' .' if @streaming_subject
    end

    private
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rdf-turtle-2.2.0 lib/rdf/turtle/streaming_writer.rb
rdf-turtle-2.0.0 lib/rdf/turtle/streaming_writer.rb
rdf-turtle-2.0.0.beta1 lib/rdf/turtle/streaming_writer.rb
rdf-turtle-1.1.8.1 lib/rdf/turtle/streaming_writer.rb
rdf-turtle-1.99.0 lib/rdf/turtle/streaming_writer.rb
rdf-turtle-1.1.8 lib/rdf/turtle/streaming_writer.rb