Redland RDF Application Framework - Ruby RDoc - Class: Redland::Stream

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

Util

### Attributes

stream | [RW] |

### Public Class methods

create_finalizer(stream)

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

new(object,model)

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

context()

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

current()

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

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

next()

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