springer 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/springer.rb +18 -10
  2. metadata +18 -39
  3. data/lib/result.rb +0 -10
data/lib/springer.rb CHANGED
@@ -4,11 +4,16 @@ require 'net/http'
4
4
  require 'result'
5
5
  require 'uri'
6
6
 
7
+
8
+ SpringerResult = Struct.new :title, :abstract, :url, :date
9
+
10
+
7
11
  class Springer
8
12
  # API to Springer search API
9
13
  #
10
14
  # Example:
11
- # >> Springer.new('[METADATA KEY]', '[IMAGES_KEY]', '[OPENACCESS_KEY]', '[Referer]').search('nano fibers')
15
+ # >> Springer.new('[METADATA KEY]', '[IMAGES_KEY]', '[OPENACCESS_KEY]',
16
+ # '[Referer]').search('nano fibers')
12
17
  # => [ #<Result:...>, ... ]
13
18
  #
14
19
  # Arguments:
@@ -21,9 +26,11 @@ class Springer
21
26
  API_PATH = "http://api.springer.com/metadata/json"
22
27
  API_URI = URI.parse(API_PATH)
23
28
 
24
- attr_accessor :metadata_key, :images_key, :openaccess_key, :referer, :num_results
29
+ attr_accessor :metadata_key, :images_key, :openaccess_key, :referer,
30
+ :num_results
25
31
 
26
- def initialize(metadata_key, images_key='', openaccess_key='', referer='', num_results=50)
32
+ def initialize(metadata_key, images_key='', openaccess_key='', referer='',
33
+ num_results=50)
27
34
  @metadata_key = metadata_key
28
35
  @images_key = images_key
29
36
  @openaccess_key = openaccess_key
@@ -34,17 +41,18 @@ class Springer
34
41
  def search(query)
35
42
  api = API_URI
36
43
  api_call = Net::HTTP.new(api.host)
37
- params = "?p=#{@num_results}&q=#{CGI.escape(query)}&api_key=#{@metadata_key}"
44
+ params = "?p=#{@num_results}&q=#{CGI.escape(query)}"
45
+ params += "&api_key=#{@metadata_key}"
38
46
  response = api_call.get2(api.path + params, { 'Referer' => @referer })
39
47
  return nil if response.class.superclass == Net::HTTPServerError
40
48
  response = JSON.parse(response.body)
41
49
  response['records'].map do |result|
42
- Result.new({
43
- :title => result['title'],
44
- :abstract => create_abstract(result),
45
- :url => result['url'],
46
- :date => result['publicationDate']
47
- })
50
+ SpringerResult.new(
51
+ result['title'],
52
+ create_abstract(result),
53
+ result['url'],
54
+ result['publicationDate']
55
+ )
48
56
  end
49
57
  end
50
58
 
metadata CHANGED
@@ -1,66 +1,45 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: springer
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 3
10
- version: 0.0.3
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Peter Lubell-Doughtie
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-02-05 00:00:00 Z
12
+ date: 2012-06-09 00:00:00.000000000 Z
19
13
  dependencies: []
20
-
21
14
  description: API for Springer search
22
15
  email: peter@helioid.com
23
16
  executables: []
24
-
25
17
  extensions: []
26
-
27
18
  extra_rdoc_files: []
28
-
29
- files:
19
+ files:
30
20
  - lib/springer.rb
31
- - lib/result.rb
32
21
  homepage: http://www.helioid.com/
33
22
  licenses: []
34
-
35
23
  post_install_message:
36
24
  rdoc_options: []
37
-
38
- require_paths:
25
+ require_paths:
39
26
  - lib
40
- required_ruby_version: !ruby/object:Gem::Requirement
27
+ required_ruby_version: !ruby/object:Gem::Requirement
41
28
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- version: "0"
49
- required_rubygems_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
34
  none: false
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- hash: 3
55
- segments:
56
- - 0
57
- version: "0"
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
58
39
  requirements: []
59
-
60
40
  rubyforge_project:
61
- rubygems_version: 1.8.15
41
+ rubygems_version: 1.8.24
62
42
  signing_key:
63
43
  specification_version: 3
64
44
  summary: API for Springer search
65
45
  test_files: []
66
-
data/lib/result.rb DELETED
@@ -1,10 +0,0 @@
1
- class Result
2
- attr_accessor :title, :abstract, :url, :date
3
-
4
- def initialize(options)
5
- options.each do |key, value|
6
- self.send("#{key}=", value)
7
- end
8
- end
9
- end
10
-