Module: RelatonJis::Bibliography
Constant Summary collapse
- SOURCE =
"https://webdesk.jsa.or.jp/books/W11M".freeze
Instance Method Summary collapse
-
#get(ref, year = nil, _opts = {}) ⇒ RelatonJis::BibliographicItem?
Get JIS document by reference.
-
#hint(result, ref, year) ⇒ Object
Log hint message.
-
#search(code, year = nil) ⇒ RelatonJis::HitCollection
Search JIS by keyword.
Instance Method Details
#get(ref, year = nil, _opts = {}) ⇒ RelatonJis::BibliographicItem?
Get JIS document by reference
32 33 34 35 36 37 38 39 40 |
# File 'lib/relaton_jis/bibliography.rb', line 32 def get(ref, year = nil, _opts = {}) warn "[relaton-jis] (\"#{ref}\") fetching..." result = search(ref, year).find if result[:bib] warn "[relaton-jis] (\"#{ref}\") found #{result[:bib].docidentifier[0].id}" return result[:bib] end hint result, ref, year end |
#hint(result, ref, year) ⇒ Object
Log hint message
49 50 51 52 53 54 55 56 |
# File 'lib/relaton_jis/bibliography.rb', line 49 def hint(result, ref, year) warn "[relaton-jis] (\"#{ref}\") not found. The identifier must be " \ "exactly as shown on the webdesk.jsa.or.jp website." if result[:missed_years] warn "[relaton-jis] (\"#{ref}\") TIP: No match for edition year #{year}, " \ "but matches exist for #{result[:missed_years].uniq.join(', ')}." end end |
#search(code, year = nil) ⇒ RelatonJis::HitCollection
Search JIS by keyword
15 16 17 18 19 20 21 |
# File 'lib/relaton_jis/bibliography.rb', line 15 def search(code, year = nil) agent = Mechanize.new resp = agent.post "#{SOURCE}0010/searchByKeyword", search_type: "JIS", keyword: code disp = JSON.parse resp.body result = agent.get "#{SOURCE}#{disp['disp_screen']}/index" HitCollection.new code, year, result: result.xpath("//div[@class='blockGenaral']") end |