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