Class: RelatonIso::IsoBibliography
- Inherits:
-
Object
- Object
- RelatonIso::IsoBibliography
- Defined in:
- lib/relaton_iso/iso_bibliography.rb
Overview
Class methods for search ISO standards.
Class Method Summary collapse
-
.get(ref, year = nil, opts = {}) ⇒ String
Relaton XML serialisation of reference.
- .search(text) ⇒ RelatonIso::HitCollection
Class Method Details
.get(ref, year = nil, opts = {}) ⇒ String
Returns Relaton XML serialisation of reference.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/relaton_iso/iso_bibliography.rb', line 28 def get(ref, year = nil, opts = {}) opts[:ref] = ref %r{ ^(?<code1>[^\s]+\s[^/]+) # match code /? (?<corr>(Amd|DAmd|(CD|WD|AWI|NP)\sAmd|Cor|CD\sCor|FDAmd|PRF\sAmd)\s\d+ # correction name :?(\d{4})?(/Cor\s\d+:\d{4})?) # match correction year }x =~ ref code = code1 || ref if year.nil? /^(?<code1>[^\s]+(\s\w+)?\s[\d-]+)(:(?<year1>\d{4}))?(?<code2>\s\w+)?/ =~ code unless code1.nil? code = code1 + code2.to_s year = year1 end end opts[:all_parts] ||= code !~ %r{^[^\s]+\s\d+-\d+} && opts[:all_parts].nil? && code2.nil? return RelatonIec::IecBibliography.get(code, year, opts) if %r[^ISO/IEC DIR] =~ code ret = isobib_get1(code, year, corr, opts) return nil if ret.nil? ret.to_most_recent_reference unless year || opts[:keep_year] || opts[:all_parts] ret end |
.search(text) ⇒ RelatonIso::HitCollection
14 15 16 17 18 19 20 |
# File 'lib/relaton_iso/iso_bibliography.rb', line 14 def search(text) HitCollection.new text rescue SocketError, Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError, OpenSSL::SSL::SSLError, Errno::ETIMEDOUT raise RelatonBib::RequestError, "Could not access http://www.iso.org" end |