• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ruby-rdf / rdf-trig / 14785116514

01 May 2025 11:04PM UTC coverage: 92.887% (+0.03%) from 92.857%
14785116514

push

github

gkellogg
Updates for TriG grammar and 1.2 semantics.

1 of 1 new or added line in 1 file covered. (100.0%)

222 of 239 relevant lines covered (92.89%)

187.64 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

85.19
/lib/rdf/trig/streaming_writer.rb
1
module RDF::TriG
2✔
2
  ##
3
  # Streaming writer interface
4
  # @author [Gregg Kellogg](https://greggkellogg.net/)
5
  module StreamingWriter
2✔
6
    ##
7
    # Write out a statement, retaining current
8
    # `subject` and `predicate` to create more compact output
9
    # @return [void] `self`
10
    def stream_statement(statement)
2✔
11
      if statement.graph_name != @streaming_graph
38✔
12
        stream_epilogue
14✔
13
        if statement.graph_name
14✔
14
          @output.write "#{format_term(statement.graph_name, **options)} {"
14✔
15
        end
16
        @streaming_graph, @streaming_subject, @streaming_predicate = statement.graph_name, statement.subject, statement.predicate
14✔
17
        @output.write "#{format_term(statement.subject, **options)} "
14✔
18
        @output.write "#{statement.predicate == RDF.type ? 'a' : format_term(statement.predicate, **options)} "
14✔
19
      elsif statement.subject != @streaming_subject
24✔
20
        @output.puts " ." if @previous_statement
24✔
21
        @output.write "#{indent(@streaming_subject ? 1 : 0)}"
24✔
22
        @streaming_subject, @streaming_predicate = statement.subject, statement.predicate
24✔
23
        @output.write "#{format_term(statement.subject, **options)} "
24✔
24
        @output.write "#{statement.predicate == RDF.type ? 'a' : format_term(statement.predicate, **options)} "
24✔
25
      elsif statement.predicate != @streaming_predicate
×
26
        @streaming_predicate = statement.predicate
×
27
        @output.write ";\n#{indent(@streaming_subject ? 2 : 1)}#{statement.predicate == RDF.type ? 'a' : format_term(statement.predicate, **options)} "
×
28
      else
29
        @output.write ",\n#{indent(@streaming_subject ? 3 : 2)}"
×
30
      end
31
      @output.write("#{format_term(statement.object, **options)}")
38✔
32
      @previous_statement = statement
38✔
33
    end
34

35
    ##
36
    # Complete open statements
37
    # @return [void] `self`
38
    def stream_epilogue
2✔
39
      case
40
      when @previous_statement.nil? ;
38✔
41
      when @streaming_graph then @output.puts " }"
14✔
42
      else @output.puts " ."
20✔
43
      end
44
    end
45

46
    private
2✔
47
  end
48
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc