Class: Springer
- Inherits:
-
Object
- Object
- Springer
- Defined in:
- lib/springer.rb
Constant Summary collapse
- API_PATH =
API to Springer search API
Example:
>> Springer.new('[METADATA KEY]', '[IMAGES_KEY]', '[OPENACCESS_KEY]', '[Referer]').search('nano fibers') => [ #<Result:...>, ... ]
Arguments:
metadata_key: (String) images_key: (String) openaccess_key: (String) referer: (String) num_results: (Integer+)
"http://api.springer.com/metadata/json"
- API_URI =
URI.parse(API_PATH)
Instance Attribute Summary collapse
-
#images_key ⇒ Object
Returns the value of attribute images_key.
-
#metadata_key ⇒ Object
Returns the value of attribute metadata_key.
-
#num_results ⇒ Object
Returns the value of attribute num_results.
-
#openaccess_key ⇒ Object
Returns the value of attribute openaccess_key.
-
#referer ⇒ Object
Returns the value of attribute referer.
Instance Method Summary collapse
-
#create_abstract(result) ⇒ Object
TODO search images and openaccess apis.
-
#initialize(metadata_key, images_key = '', openaccess_key = '', referer = '', num_results = 50) ⇒ Springer
constructor
A new instance of Springer.
- #search(query) ⇒ Object
Constructor Details
#initialize(metadata_key, images_key = '', openaccess_key = '', referer = '', num_results = 50) ⇒ Springer
Returns a new instance of Springer.
31 32 33 34 35 36 37 38 |
# File 'lib/springer.rb', line 31 def initialize(, images_key='', openaccess_key='', referer='', num_results=50) @metadata_key = @images_key = images_key @openaccess_key = openaccess_key @referer = referer @num_results = num_results < 100 ? num_results : 100 end |
Instance Attribute Details
#images_key ⇒ Object
Returns the value of attribute images_key.
28 29 30 |
# File 'lib/springer.rb', line 28 def images_key @images_key end |
#metadata_key ⇒ Object
Returns the value of attribute metadata_key.
28 29 30 |
# File 'lib/springer.rb', line 28 def @metadata_key end |
#num_results ⇒ Object
Returns the value of attribute num_results.
28 29 30 |
# File 'lib/springer.rb', line 28 def num_results @num_results end |
#openaccess_key ⇒ Object
Returns the value of attribute openaccess_key.
28 29 30 |
# File 'lib/springer.rb', line 28 def openaccess_key @openaccess_key end |
#referer ⇒ Object
Returns the value of attribute referer.
28 29 30 |
# File 'lib/springer.rb', line 28 def referer @referer end |
Instance Method Details
#create_abstract(result) ⇒ Object
TODO search images and openaccess apis
60 61 62 63 64 65 66 67 |
# File 'lib/springer.rb', line 60 def create_abstract(result) abstract = "#{result['publicationName']} – " result['creators'].each_with_index do |creator, i| abstract += " and" if i > 0 abstract += " #{creator['creator']}" end return abstract end |
#search(query) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/springer.rb', line 40 def search(query) api = API_URI api_call = Net::HTTP.new(api.host) params = "?p=#{@num_results}&q=#{CGI.escape(query)}" params += "&api_key=#{@metadata_key}" response = api_call.get2(api.path + params, { 'Referer' => @referer }) return nil if response.class.superclass == Net::HTTPServerError response = JSON.parse(response.body) response['records'].map do |result| SpringerResult.new( result['title'], create_abstract(result), result['url'], result['publicationDate'] ) end end |