Module: RDF::TriG::StreamingWriter
- Included in:
- Writer
- Defined in:
- lib/rdf/trig/streaming_writer.rb
Overview
Streaming writer interface
Instance Method Summary collapse
-
#stream_epilogue
Complete open statements.
-
#stream_statement(statement)
Write out a statement, retaining current
subject
andpredicate
to create more compact output.
Instance Method Details
#stream_epilogue
This method returns an undefined value.
Complete open statements
38 39 40 41 42 43 44 |
# File 'lib/rdf/trig/streaming_writer.rb', line 38 def stream_epilogue case when @previous_statement.nil? ; when @streaming_graph then @output.puts " }" else @output.puts " ." end end |
#stream_statement(statement)
This method returns an undefined value.
Write out a statement, retaining current subject
and predicate
to create more compact output
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/rdf/trig/streaming_writer.rb', line 10 def stream_statement(statement) if statement.graph_name != @streaming_graph stream_epilogue if statement.graph_name @output.write "#{format_term(statement.graph_name, **)} {" end @streaming_graph, @streaming_subject, @streaming_predicate = statement.graph_name, statement.subject, statement.predicate @output.write "#{format_term(statement.subject, **)} " @output.write "#{statement.predicate == RDF.type ? 'a' : format_term(statement.predicate, **)} " elsif statement.subject != @streaming_subject @output.puts " ." if @previous_statement @output.write "#{indent(@streaming_subject ? 1 : 0)}" @streaming_subject, @streaming_predicate = statement.subject, statement.predicate @output.write "#{format_term(statement.subject, **)} " @output.write "#{statement.predicate == RDF.type ? 'a' : format_term(statement.predicate, **)} " elsif statement.predicate != @streaming_predicate @streaming_predicate = statement.predicate @output.write ";\n#{indent(@streaming_subject ? 2 : 1)}#{statement.predicate == RDF.type ? 'a' : format_term(statement.predicate, **)} " else @output.write ",\n#{indent(@streaming_subject ? 3 : 2)}" end @output.write("#{format_term(statement.object, **)}") @previous_statement = statement end |