Go to Redland Home - Language Bindings Home - Ruby API Home
Class Redland::Stream
In: rdf/redland/stream.rb
Parent: Object

This module provides a method to generate a stream of statements, suitable for outputing from RDF/XML parsers, returning as the results of queries and serialising models in order to manipulate them or transform into another syntax.

Methods

context   create_finalizer   current   end?   new   next  

Included Modules

Attributes

stream  [RW] 

Public Class methods

You shouldn‘t use this. Used internally for cleanup.

[Source]

# File rdf/redland/stream.rb, line 22
    def Stream.create_finalizer(stream)
      proc {|id| "Finalizer on #{id}"
        #puts "closing stream"
        Redland::librdf_free_stream(stream)
      }
    end

Create a wrapper for a librdf_stream object (?? confirm)

[Source]

# File rdf/redland/stream.rb, line 15
    def initialize(object,model)
      @stream = object
      @model = model
      ObjectSpace.define_finalizer(self,Stream.create_finalizer(@stream))
    end

Public Instance methods

Get the context of the current Statement in the stream

[Source]

# File rdf/redland/stream.rb, line 62
    def context()
      if not self.stream
        return true
      end
      my_node = Redland.librdf_stream_get_context(@stream)
      if not my_node
        return nil
      else
        return Node.new(:from_object=>my_node)
      end
    end

Get the current Statement in the stram

[Source]

# File rdf/redland/stream.rb, line 39
    def current
      if not self.stream
        return nil
      end
      my_statement = Redland.librdf_stream_get_object(self.stream)
      
      unless my_statement
        return nil
      else
        return Statement.new(:from_object=>my_statement,:model=>@model)
      end
    end

Test if the stream has ended

[Source]

# File rdf/redland/stream.rb, line 30
    def end?
      if not @stream
        return true
      else
        return (Redland.librdf_stream_end(self.stream) != 0)
      end
    end

Move to the next Statement in the stream

[Source]

# File rdf/redland/stream.rb, line 53
    def next()
      if not self.stream
        return true
      else
        return Redland.librdf_stream_next(self.stream)
      end
    end

Go to Redland Home - Language Bindings Home - Ruby API Home

(C) Copyright 2004-2011 Dave Beckett, (C) Copyright 2004-2005 University of Bristol