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
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 |