class RoadForest::TypeHandlers::RDFPost::Reader
Attributes
current_state[RW]
lineno[R]
namespace_prefix[RW]
new_triple[RW]
object[RW]
object_lang[RW]
object_prefix[RW]
object_type[RW]
predicate[RW]
predicate_prefix[RW]
states[R]
subject[RW]
subject_prefix[RW]
Public Class Methods
new(input, options=nil, &block)
click to toggle source
Calls superclass method
# File lib/roadforest/type-handlers/rdfpost.rb, line 216 def initialize(input, options=nil, &block) super(input, options||{}, &block) @lineno = 0 @new_triple = false @states = { :rdf => St::RDF.new(self), :def_ns_decl => St::DefNsDecl.new(self), :ns_decl => St::NsDecl.new(self), :ns_decl_suffix => St::NsDeclSuffix.new(self), :skip_to_subject => St::SkipToSubject.new(self), :skip_to_subj_or_pred => St::SkipToSubjectOrPred.new(self), :subject => St::Subject.new(self), :subject_suffix => St::SubjectSuffix.new(self), :predicate => St::Predicate.new(self), :predicate_suffix => St::PredicateSuffix.new(self), :object => St::Object.new(self), :object_suffix => St::ObjectSuffix.new(self), :object_literal => St::ObjectLiteral.new(self), :type_or_lang => St::TypeOrLang.new(self) } @current_state = @states.fetch(:rdf) end
Public Instance Methods
build_triple()
click to toggle source
# File lib/roadforest/type-handlers/rdfpost.rb, line 263 def build_triple if @object.nil? or @predicate.nil? or @subject.nil? raise EOFError end object = @object if object.is_a? String object = ::RDF::Literal.new(object, :datatype => object_type, :language => object_lang) end @object_type = nil @object_lang = nil [@subject, @predicate, object] end
consume_pair()
click to toggle source
# File lib/roadforest/type-handlers/rdfpost.rb, line 282 def consume_pair @lineno += 1 end
read_triple()
click to toggle source
# File lib/roadforest/type-handlers/rdfpost.rb, line 247 def read_triple if @lineno >= @input.length raise EOFError end while @lineno < @input.length @current_state.accept(*@input[@lineno]) if @new_triple @new_triple = false return build_triple end end return build_triple end
rewind()
click to toggle source
# File lib/roadforest/type-handlers/rdfpost.rb, line 278 def rewind @lineno = 0 end