Sha256: 907d778b3d5cba4617511d3ae34a1d01f53005d90322d9fc4d5bc84631f70598

Contents?: true

Size: 821 Bytes

Versions: 1

Compression:

Stored size: 821 Bytes

Contents

module Rea
  module DBLP
    class Parser
      include Rea::ErrorUtils

      def self.parse(*args, &bl)
        new.parse(*args, &bl)
      end

      def parse(path)
        if path.respond_to?(:to_path)
          parse_text(Path(path).read, path)
        else
          parse_text(path, nil)
        end
      end

      private

      def work_key(identifier)
        WorkKey.new("dblp", identifier)
      end

      def parse_xml(xml, source)
        options = Nokogiri::XML::ParseOptions::STRICT
        parsed  = Nokogiri::XML(xml.to_s, source.to_s, nil, options)
        block_given? ? yield(parsed) : parsed
      rescue NoMethodError
        parse_format_error!(source)
      rescue Nokogiri::XML::SyntaxError
        parse_error!(source)
      end

    end # class Parser
  end # module DBLP
end # module Rea

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rea-0.0.1 lib/rea-dblp/rea/dblp/parser.rb