lib/rdf/microdata/reader.rb in rdf-microdata-1.1.1 vs lib/rdf/microdata/reader.rb in rdf-microdata-1.1.1.1
- old
+ new
@@ -265,20 +265,23 @@
#
# @yield [statement]
# @yieldparam [RDF::Statement] statement
# @return [void]
def each_statement(&block)
- if @vocab_expansion
- @vocab_expansion = false
- expand.each_statement(&block)
- @vocab_expansion = true
- else
- @callback = block
+ if block_given?
+ if @vocab_expansion
+ @vocab_expansion = false
+ expand.each_statement(&block)
+ @vocab_expansion = true
+ else
+ @callback = block
- # parse
- parse_whole_document(@doc, base_uri)
+ # parse
+ parse_whole_document(@doc, base_uri)
+ end
end
+ enum_for(:each_statement)
end
##
# Iterates the given block for each RDF triple in the input.
#
@@ -286,13 +289,16 @@
# @yieldparam [RDF::Resource] subject
# @yieldparam [RDF::URI] predicate
# @yieldparam [RDF::Value] object
# @return [void]
def each_triple(&block)
- each_statement do |statement|
- block.call(*statement.to_triple)
+ if block_given?
+ each_statement do |statement|
+ block.call(*statement.to_triple)
+ end
end
+ enum_for(:each_triple)
end
private
# Keep track of allocated BNodes
@@ -331,10 +337,10 @@
# @param [URI, BNode, Literal] object the object of the statement
# @return [Statement] Added statement
# @raise [ReaderError] Checks parameter types and raises if they are incorrect if parsing mode is _validate_.
def add_triple(node, subject, predicate, object)
statement = RDF::Statement.new(subject, predicate, object)
- raise RDF::ReaderError, "#{statement.inspect} is inalid" if validate? && statement.invalid?
+ raise RDF::ReaderError, "#{statement.inspect} is invalid" if validate? && statement.invalid?
add_debug(node) {"statement: #{RDF::NTriples.serialize(statement)}"}
@callback.call(statement)
end
# Parsing a Microdata document (this is *not* the recursive method)
\ No newline at end of file