Class: Arxiv
- Inherits:
-
Object
- Object
- Arxiv
- Defined in:
- lib/arxiv.rb
Constant Summary collapse
- API_PATH =
Base api query url
'http://export.arxiv.org/api/query?'
- API_URI =
URI.parse(API_PATH)
Instance Attribute Summary collapse
-
#num_results ⇒ Object
Returns the value of attribute num_results.
-
#referer ⇒ Object
Returns the value of attribute referer.
-
#start_results ⇒ Object
Returns the value of attribute start_results.
Instance Method Summary collapse
-
#initialize(referer = '', num_results = 50, start_results = 0) ⇒ Arxiv
constructor
A new instance of Arxiv.
- #search(query, field = 'all') ⇒ Object
Constructor Details
#initialize(referer = '', num_results = 50, start_results = 0) ⇒ Arxiv
Returns a new instance of Arxiv.
20 21 22 23 24 |
# File 'lib/arxiv.rb', line 20 def initialize(referer='', num_results=50, start_results=0) @referer = referer @start_results = start_results @num_results = num_results end |
Instance Attribute Details
#num_results ⇒ Object
Returns the value of attribute num_results.
18 19 20 |
# File 'lib/arxiv.rb', line 18 def num_results @num_results end |
#referer ⇒ Object
Returns the value of attribute referer.
18 19 20 |
# File 'lib/arxiv.rb', line 18 def referer @referer end |
#start_results ⇒ Object
Returns the value of attribute start_results.
18 19 20 |
# File 'lib/arxiv.rb', line 18 def start_results @start_results end |
Instance Method Details
#search(query, field = 'all') ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/arxiv.rb', line 26 def search(query, field='all') api = API_URI api_call = Net::HTTP.new(api.host) params = "?search_query=#{field}:#{query}&start=#{@start_results}" params += "&max_results=#{@num_results}" response = api_call.get2(api.path + params, { 'Referer' => @referer }) return nil if response.class.superclass == Net::HTTPServerError doc = Nokogiri::HTML(response.body) doc.xpath('//feed/entry').map do |item| = item.xpath('author').map { || .xpath('name').text } ArxivResult.new( item.xpath('title').text, item.xpath('summary').text.gsub("\n", ' ').strip, item.xpath('id').text, item.xpath('published').text, ) end end |