class RelatonUn::UnBibliography
Class methods for search ISO standards.
Public Class Methods
get(ref, _year = nil, _opts = {})
click to toggle source
@param ref [String] document reference @param year [String, NilClass] @param opts [Hash] options @return [RelatonUn::UnBibliographicItem]
# File lib/relaton_un/un_bibliography.rb, line 23 def get(ref, _year = nil, _opts = {}) warn "[relaton-un] (\"#{ref}\") fetching..." /^(?:UN\s)?(?<code>.*)/ =~ ref result = isobib_search_filter(code) if result warn "[relaton-un] (\"#{ref}\") "\ "found #{result.fetch.docidentifier[0].id}" result.fetch end end
search(text)
click to toggle source
@param text [String] @return [RelatonUn::HitCollection]
# File lib/relaton_un/un_bibliography.rb, line 9 def search(text) HitCollection.new text rescue SocketError, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError, Net::ReadTimeout, Net::OpenTimeout, OpenSSL::SSL::SSLError, Errno::ETIMEDOUT => e raise RelatonBib::RequestError, "Could not access #{HitCollection::DOMAIN}: #{e.message}" end
Private Class Methods
isobib_search_filter(code)
click to toggle source
Search for hits.
@param code [String] reference without correction @return [RelatonUn::HitCollection]
# File lib/relaton_un/un_bibliography.rb, line 40 def isobib_search_filter(code) result = search(code) result.select { |i| i.hit[:symbol].include? code }.first end