Sha256: 5c137b2229df382f9f982b60ae78c82e9dfe878cac7aeec7b58a17b262ba802d

Contents?: true

Size: 1.03 KB

Versions: 24

Compression:

Stored size: 1.03 KB

Contents

module RelatonCalconnect
  module Scrapper
    DOMAIN = "https://standards.calconnect.org/".freeze
    # DOMAIN = "http://127.0.0.1:4000/".freeze

    class << self
      # papam hit [Hash]
      # @return [RelatonOgc::OrcBibliographicItem]
      def parse_page(hit)
        link = hit["link"].detect { |l| l["type"] == "rxl" }
        if link
          bib_xml = fetch_bib_xml link["content"]
          XMLParser.from_xml bib_xml
        end
      end

      private

      # @param url [String]
      # @return [String] XML
      def fetch_bib_xml(url)
        rxl = get_rxl url
        uri_rxl = rxl.at("uri[@type='rxl']")
        return rxl.to_xml unless uri_rxl

        uri_xml = rxl.xpath("//uri").to_xml
        rxl = get_rxl uri_rxl.text
        docid = rxl.at "//docidentifier"
        docid.add_previous_sibling uri_xml
        rxl.to_xml
      end

      # @param path [String]
      # @return [Nokogiri::XML::Document]
      def get_rxl(path)
        resp = Faraday.get DOMAIN + path
        Nokogiri::XML resp.body
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
relaton-calconnect-1.9.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.8.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.7.2 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.7.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.6.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.6.pre1 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.5.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.5.pre lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.4.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.3.0 lib/relaton_calconnect/scrapper.rb
metanorma-cli-1.3.4 gems/ruby/2.6.0/gems/relaton-calconnect-1.2.0/lib/relaton_calconnect/scrapper.rb
metanorma-cli-1.3.3.1 gems/ruby/2.6.0/gems/relaton-calconnect-1.2.0/lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.2.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.1.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.0.1 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-1.0.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-0.7.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-0.6.1 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-0.6.0 lib/relaton_calconnect/scrapper.rb
relaton-calconnect-0.5.0 lib/relaton_calconnect/scrapper.rb