module RelatonEcma::Scrapper

Constants

ENDPOINT

Public Class Methods

scrape_page(code) click to toggle source

@param code [String] @return [RelatonBib::BibliographicItem]

# File lib/relaton_ecma/scrapper.rb, line 8
def scrape_page(code)
  url = "#{ENDPOINT}#{code.gsub(/[\/\s]/, '_').upcase}.yaml"
  parse_page url
rescue OpenURI::HTTPError => e
  return if e.io.status.first == "404"

  raise RelatonBib::RequestError, "No document found for #{code} reference. #{e.message}"
end

Private Class Methods

parse_page(url) click to toggle source

@param url [String] @retrurn [RelatonBib::BibliographicItem]

# File lib/relaton_ecma/scrapper.rb, line 21
def parse_page(url)
  doc = OpenURI.open_uri url
  RelatonBib::BibliographicItem.from_hash YAML.safe_load(doc)
end