module RelatonCie::Scrapper

Constants

ENDPOINT

Public Class Methods

scrape_page(code) click to toggle source

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

# File lib/relaton_cie/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_cie/scrapper.rb, line 21
def parse_page(url)
  doc = OpenURI.open_uri url
  bib_hash = RelatonBib::HashConverter.hash_to_bib YAML.safe_load(doc)
  RelatonBib::BibliographicItem.new(**bib_hash)
end