Sha256: b4f230d542c95ea2c54769b52284eacc4d53561f3320af503b4d97767636f32f
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
module Redlander class Stream attr_reader :rdf_stream def initialize(source) @rdf_stream = case source when Statement Redland.librdf_model_find_statements(source.model.rdf_model, source.rdf_statement) when Model Redland.librdf_model_as_stream(source.rdf_model) else # TODO raise NotImplementedError.new end raise RedlandError.new("Failed to create a new stream") if @rdf_stream.null? ObjectSpace.define_finalizer(self, proc { Redland.librdf_free_stream(@rdf_stream) }) end # End-of-stream? def eos? Redland.librdf_stream_end(@rdf_stream) != 0 end def succ Redland.librdf_stream_next(@rdf_stream).zero? end def current Statement.new(self) end # Return all the remaining statements in the stream # from the current position. def tail [].tap do |all| while !eos? all << current succ end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
redlander-0.3.2 | lib/redlander/stream.rb~ |
redlander-0.3.1 | lib/redlander/stream.rb~ |