Module: Relaton::Jis::Bibliography
Instance Method Summary collapse
-
#get(ref, year = nil, opts = {}) ⇒ Relaton::Jis::Item?
Get JIS document by reference.
-
#hint(result, ref, year) ⇒ Object
Log hint message.
-
#search(code, year = nil) ⇒ Relaton::Jis::HitCollection?
Search JIS by reference, returning the full candidate collection.
Instance Method Details
#get(ref, year = nil, opts = {}) ⇒ Relaton::Jis::Item?
Get JIS document by reference
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/relaton/jis/bibliography.rb', line 41 def get(ref, year = nil, opts = {}) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength code = ref.sub(/\s\((all parts|規格群)\)/, "") opts[:all_parts] ||= !$1.nil? Util.info "Fetching from webdesk.jsa.or.jp ...", key: ref hits = search(code, year) unless hits hint [], ref, year return end result = opts[:all_parts] ? hits.find_all_parts : hits.find if result.is_a? Bib::ItemData Util.info "Found: `#{result.docidentifier[0].content}`", key: ref return result end hint result, ref, year end |
#hint(result, ref, year) ⇒ Object
Log hint message
65 66 67 68 69 70 71 72 |
# File 'lib/relaton/jis/bibliography.rb', line 65 def hint(result, ref, year) Util.info "Not found.", key: ref if result&.any? Util.info "TIP: No match for edition year `#{year}`, but " \ "matches exist for `#{result.uniq.join('`, `')}`.", key: ref end nil end |
#search(code, year = nil) ⇒ Relaton::Jis::HitCollection?
Search JIS by reference, returning the full candidate collection.
The reference is parsed into a Pubid::Jis::Identifier and matched against the pubid-based ‘index-v2` via HitCollection. Candidates share the reference’s series and number (a supplement is filed under its base number), so an edition and its amendments are returned together.
22 23 24 25 26 27 28 29 |
# File 'lib/relaton/jis/bibliography.rb', line 22 def search(code, year = nil) pubid = ::Pubid::Jis::Identifier.parse code pubid.year ||= year.to_i if year HitCollection.new pubid rescue StandardError => e Util.warn "Unable to parse `#{code}` with pubid: #{e.}" nil end |