serrano 0.5.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,13 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "erb"
1
4
  require "faraday"
2
- require 'faraday_middleware'
5
+ require "faraday_middleware"
3
6
  require "multi_json"
4
7
  require "serrano/error"
5
- require "serrano/constants"
6
- require 'serrano/helpers/configuration'
7
- require 'serrano/filterhandler'
8
- require 'serrano/error'
9
- require 'serrano/faraday'
10
- require 'serrano/utils'
8
+ require "serrano/helpers/configuration"
9
+ require "serrano/filterhandler"
10
+ require "serrano/error"
11
+ require "serrano/faraday"
12
+ require "serrano/utils"
11
13
 
12
14
  ##
13
15
  # Serrano::RequestCursor
@@ -15,7 +17,6 @@ require 'serrano/utils'
15
17
  # Class to perform HTTP requests to the Crossref API
16
18
  module Serrano
17
19
  class RequestCursor #:nodoc:
18
-
19
20
  attr_accessor :endpt
20
21
  attr_accessor :id
21
22
  attr_accessor :query
@@ -36,8 +37,8 @@ module Serrano
36
37
  attr_accessor :args
37
38
 
38
39
  def initialize(endpt, id, query, filter, offset,
39
- limit, sample, sort, order, facet, select,
40
- works, agency, options, verbose, cursor,
40
+ limit, sample, sort, order, facet, select,
41
+ works, agency, options, verbose, cursor,
41
42
  cursor_max, args)
42
43
 
43
44
  self.endpt = endpt
@@ -61,89 +62,89 @@ module Serrano
61
62
  end
62
63
 
63
64
  def perform
64
- filt = filter_handler(self.filter)
65
- fieldqueries = field_query_handler(self.args)
66
- self.select = self.select.join(",") if self.select && self.select.class == Array
65
+ filt = filter_handler(filter)
66
+ fieldqueries = field_query_handler(args)
67
+ self.select = select.join(",") if select && select.class == Array
67
68
 
68
- if self.cursor_max.class != nil
69
- if !self.cursor_max.kind_of?(Integer)
70
- raise "cursor_max must be of class int"
71
- end
69
+ unless cursor_max.class.nil?
70
+ raise "cursor_max must be of class int" unless cursor_max.is_a?(Integer)
72
71
  end
73
72
 
74
- arguments = { query: self.query, filter: filt, offset: self.offset,
75
- rows: self.limit, sample: self.sample, sort: self.sort,
76
- order: self.order, facet: self.facet, select: self.select,
77
- cursor: self.cursor }.tostrings
73
+ arguments = {query: query, filter: filt, offset: offset,
74
+ rows: limit, sample: sample, sort: sort,
75
+ order: order, facet: facet, select: select,
76
+ cursor: cursor}.tostrings
78
77
  arguments = arguments.merge(fieldqueries)
79
- opts = arguments.delete_if { |k, v| v.nil? }
78
+ opts = arguments.delete_if { |_k, v| v.nil? }
80
79
 
81
- if verbose
82
- $conn = Faraday.new(:url => Serrano.base_url, :request => options || []) do |f|
80
+ conn = if verbose
81
+ Faraday.new(url: Serrano.base_url, request: options || []) do |f|
83
82
  f.response :logger
84
83
  f.use FaradayMiddleware::RaiseHttpException
85
84
  f.adapter Faraday.default_adapter
86
85
  end
87
86
  else
88
- $conn = Faraday.new(:url => Serrano.base_url, :request => options || []) do |f|
87
+ Faraday.new(url: Serrano.base_url, request: options || []) do |f|
89
88
  f.use FaradayMiddleware::RaiseHttpException
90
89
  f.adapter Faraday.default_adapter
91
90
  end
92
91
  end
93
92
 
94
- $conn.headers[:user_agent] = make_ua
95
- $conn.headers["X-USER-AGENT"] = make_ua
93
+ conn.headers[:user_agent] = make_ua
94
+ conn.headers["X-USER-AGENT"] = make_ua
95
+
96
+ if id.nil?
97
+ endpt2 = endpt
98
+ js = _req(conn, endpt, opts)
99
+ cu = js["message"]["next-cursor"]
100
+ max_avail = js["message"]["total-results"]
101
+ _redo_req(conn, js, opts, cu, max_avail)
96
102
 
97
- if self.id.nil?
98
- $endpt2 = self.endpt
99
- js = self._req(self.endpt, opts)
100
- cu = js['message']['next-cursor']
101
- max_avail = js['message']['total-results']
102
- res = self._redo_req(js, opts, cu, max_avail)
103
- return res
104
103
  else
104
+ self.id = Array(id)
105
+ # url encoding
106
+ self.id = id.map { |x| ERB::Util.url_encode(x) }
105
107
  coll = []
106
- Array(self.id).each do |x|
107
- if self.works
108
- $endpt2 = self.endpt + '/' + x.to_s + "/works"
108
+ id.each do |x|
109
+ endpt2 = if works
110
+ endpt + "/" + x.to_s + "/works"
109
111
  else
110
- if self.agency
111
- $endpt2 = self.endpt + '/' + x.to_s + "/agency"
112
+ endpt2 = if agency
113
+ endpt + "/" + x.to_s + "/agency"
112
114
  else
113
- $endpt2 = self.endpt + '/' + x.to_s
115
+ endpt + "/" + x.to_s
114
116
  end
115
117
  end
116
118
 
117
- js = self._req($endpt2, opts)
118
- cu = js['message']['next-cursor']
119
- max_avail = js['message']['total-results']
120
- coll << self._redo_req(js, opts, cu, max_avail)
119
+ js = _req(conn, endpt2, opts)
120
+ cu = js["message"]["next-cursor"]
121
+ max_avail = js["message"]["total-results"]
122
+ coll << _redo_req(conn, js, opts, cu, max_avail)
121
123
  end
122
- return coll
124
+ coll
123
125
  end
124
126
  end
125
127
 
126
- def _redo_req(js, opts, cu, max_avail)
127
- if !cu.nil? and self.cursor_max > js['message']['items'].length
128
+ def _redo_req(conn, js, opts, cu, max_avail)
129
+ if !cu.nil? && (cursor_max > js["message"]["items"].length)
128
130
  res = [js]
129
- total = js['message']['items'].length
130
- while !cu.nil? and self.cursor_max > total and total < max_avail do
131
+ total = js["message"]["items"].length
132
+ while !cu.nil? && (cursor_max > total) && (total < max_avail)
131
133
  opts[:cursor] = cu
132
- out = self._req($endpt2, opts)
133
- cu = out['message']['next-cursor']
134
+ out = _req(conn, endpt2, opts)
135
+ cu = out["message"]["next-cursor"]
134
136
  res << out
135
- total = res.collect {|x| x['message']['items'].length}.reduce(0, :+)
137
+ total = res.collect { |x| x["message"]["items"].length }.sum
136
138
  end
137
- return res
139
+ res
138
140
  else
139
- return js
141
+ js
140
142
  end
141
143
  end
142
144
 
143
- def _req(path, opts)
144
- res = $conn.get path, opts
145
- return MultiJson.load(res.body)
145
+ def _req(conn, path, opts)
146
+ res = conn.get path, opts
147
+ MultiJson.load(res.body)
146
148
  end
147
-
148
149
  end
149
150
  end
@@ -1,23 +1,28 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "faraday"
2
4
  require "multi_json"
3
5
 
4
- def get_styles
6
+ def fetch_styles
5
7
  base = "https://api.github.com/repos/citation-style-language/styles"
6
- conn = Faraday.new(:url => base)
7
- args = { per_page: 1 }
8
- tt = conn.get 'commits', args
8
+ conn = Faraday.new(url: base) { |f|
9
+ f.use FaradayMiddleware::RaiseHttpException
10
+ f.adapter Faraday.default_adapter
11
+ }
12
+ args = {per_page: 1}
13
+ tt = conn.get "commits", args
9
14
  commres = MultiJson.load(tt.body)
10
- sha = commres[0]['sha']
15
+ sha = commres[0]["sha"]
11
16
  sty = conn.get "git/trees/" + sha
12
17
  res = MultiJson.load(sty.body)
13
- files = res['tree'].collect { |x| x['path'] }
18
+ files = res["tree"].collect { |x| x["path"] }
14
19
  matches = files.collect { |x|
15
- if x.match('csl').nil?
20
+ if x.match("csl").nil?
16
21
  nil
17
22
  else
18
- x.match('csl').string
23
+ x.match("csl").string
19
24
  end
20
25
  }
21
26
  csls = matches.compact
22
- return csls.collect { |z| z.gsub('.csl', '') }
27
+ csls.collect { |z| z.gsub(".csl", "") }
23
28
  end
@@ -1,33 +1,35 @@
1
+ # frozen_string_literal: true
2
+
1
3
  def make_ua
2
- requa = 'Faraday/v' + Faraday::VERSION
3
- habua = 'Serrano/v' + Serrano::VERSION
4
- ua = requa + ' ' + habua
4
+ requa = "Faraday/v" + Faraday::VERSION
5
+ habua = "Serrano/v" + Serrano::VERSION
6
+ ua = requa + " " + habua
5
7
  if Serrano.mailto
6
- ua = ua + " (mailto:%s)" % Serrano.mailto
8
+ ua += " (mailto:%s)" % Serrano.mailto
7
9
  end
8
- return ua
10
+ # ua += format(' (mailto:%s)', Serrano.mailto) if Serrano.mailto
11
+ ua
9
12
  end
10
13
 
11
14
  def field_query_handler(x)
12
- tmp = x.keep_if { |z| z.match(/query_/) }
13
- return rename_query_filters(tmp)
15
+ tmp = x.keep_if { |z| z.match(/query_/) }
16
+ rename_query_filters(tmp)
14
17
  end
15
18
 
16
19
  def rename_query_filters(foo)
17
- foo = foo.tostrings
18
- foo = foo.map { |x,y| [x.to_s.sub('container_title', 'container-title'), y] }.to_h
19
- foo = foo.map { |x,y| [x.to_s.sub('query_', 'query.'), y] }.to_h
20
- return foo
20
+ foo = foo.tostrings
21
+ foo = foo.map { |x, y| [x.to_s.sub("container_title", "container-title"), y] }.to_h
22
+ foo.map { |x, y| [x.to_s.sub("query_", "query."), y] }.to_h
21
23
  end
22
24
 
23
25
  class Hash
24
- def tostrings
25
- Hash[self.map{|(k,v)| [k.to_s,v]}]
26
- end
26
+ def tostrings
27
+ Hash[map { |(k, v)| [k.to_s, v] }]
28
+ end
27
29
  end
28
30
 
29
31
  class Hash
30
- def tosymbols
31
- Hash[self.map{|(k,v)| [k.to_sym,v]}]
32
- end
32
+ def tosymbols
33
+ Hash[map { |(k, v)| [k.to_sym, v] }]
34
+ end
33
35
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Serrano
2
- VERSION = "0.5.0"
4
+ VERSION = "1.0.0"
3
5
  end
@@ -1,38 +1,51 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path("lib", __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'serrano/version'
5
+ require "serrano/version"
5
6
 
6
7
  Gem::Specification.new do |s|
7
- s.name = 'serrano'
8
- s.version = Serrano::VERSION
9
- s.platform = Gem::Platform::RUBY
10
- s.required_ruby_version = '>= 2.1'
11
- s.date = '2018-04-08'
12
- s.summary = "Crossref Client"
8
+ s.name = "serrano"
9
+ s.version = Serrano::VERSION
10
+ s.platform = Gem::Platform::RUBY
11
+ s.required_ruby_version = ">= 2.1"
12
+ s.date = "2020-10-19"
13
+ s.summary = "Crossref Client"
13
14
  s.description = "Low Level Ruby Client for the Crossref Search API"
14
- s.authors = "Scott Chamberlain"
15
- s.email = 'myrmecocystus@gmail.com'
16
- s.homepage = 'https://github.com/sckott/serrano'
17
- s.licenses = 'MIT'
15
+ s.authors = "Scott Chamberlain"
16
+ s.email = "myrmecocystus@gmail.com"
17
+ s.homepage = "https://github.com/sckott/serrano"
18
+ s.licenses = "MIT"
18
19
 
19
- s.files = `git ls-files -z`.split("\x0").reject {|f| f.match(%r{^(test|spec|features)/}) }
20
+ s.files = `git ls-files -z`.split("\x0").reject do |f|
21
+ f.match(%r{^(test|spec|features)/})
22
+ end
20
23
  s.require_paths = ["lib"]
21
24
 
22
- s.bindir = 'bin'
23
- s.executables = ['serrano']
25
+ s.bindir = "bin"
26
+ s.executables = ["serrano"]
27
+
28
+ s.add_development_dependency "bundler", '~> 2.1', '>= 2.1.4'
29
+ s.add_development_dependency "codecov", "~> 0.2.0"
30
+ s.add_development_dependency "json", '~> 2.3', '>= 2.3.1'
31
+ s.add_development_dependency "rake", '~> 13.0', '>= 13.0.1'
32
+ s.add_development_dependency "standard", "~> 0.7"
33
+ s.add_development_dependency "simplecov", "~> 0.19.0"
34
+ s.add_development_dependency "test-unit", '~> 3.3', '>= 3.3.6'
35
+ s.add_development_dependency "vcr", "~> 6.0"
36
+ s.add_development_dependency "webmock", '~> 3.9', '>= 3.9.3'
24
37
 
25
- s.add_development_dependency 'bundler', '~> 1.16', '>= 1.16.1'
26
- s.add_development_dependency 'rake', '~> 12.3', '>= 12.3.1'
27
- s.add_development_dependency 'test-unit', '~> 3.2', '>= 3.2.7'
28
- s.add_development_dependency 'simplecov', '~> 0.16.1'
29
- s.add_development_dependency 'codecov', '~> 0.1.10'
30
- s.add_development_dependency 'json', '~> 2.1'
31
- s.add_development_dependency 'vcr', '~> 4.0'
32
- s.add_development_dependency 'webmock', '~> 3.3'
38
+ s.add_runtime_dependency "faraday", "~> 1.1"
39
+ s.add_runtime_dependency "faraday_middleware", "~> 1.0"
40
+ s.add_runtime_dependency "multi_json", '~> 1.15'
41
+ s.add_runtime_dependency 'thor', '~> 1.0', '>= 1.0.1'
33
42
 
34
- s.add_runtime_dependency 'faraday', '~> 0.14.0'
35
- s.add_runtime_dependency 'faraday_middleware', '~> 0.12.2'
36
- s.add_runtime_dependency 'thor', '~> 0.20.0'
37
- s.add_runtime_dependency 'multi_json', '~> 1.13', '>= 1.13.1'
43
+ s.metadata = {
44
+ "homepage_uri" => "https://github.com/sckott/serrano",
45
+ "documentation_uri" => "https://www.rubydoc.info/gems/serrano",
46
+ "changelog_uri" =>
47
+ "https://github.com/sckott/serrano/releases/tag/v#{s.version}",
48
+ "source_code_uri" => "https://github.com/sckott/serrano",
49
+ "bug_tracker_uri" => "https://github.com/sckott/serrano/issues"
50
+ }
38
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: serrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Chamberlain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-08 00:00:00.000000000 Z
11
+ date: 2020-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,192 +16,218 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: '2.1'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 1.16.1
22
+ version: 2.1.4
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '1.16'
29
+ version: '2.1'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 1.16.1
32
+ version: 2.1.4
33
33
  - !ruby/object:Gem::Dependency
34
- name: rake
34
+ name: codecov
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '12.3'
39
+ version: 0.2.0
40
+ type: :development
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.2.0
47
+ - !ruby/object:Gem::Dependency
48
+ name: json
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '2.3'
40
54
  - - ">="
41
55
  - !ruby/object:Gem::Version
42
- version: 12.3.1
56
+ version: 2.3.1
43
57
  type: :development
44
58
  prerelease: false
45
59
  version_requirements: !ruby/object:Gem::Requirement
46
60
  requirements:
47
61
  - - "~>"
48
62
  - !ruby/object:Gem::Version
49
- version: '12.3'
63
+ version: '2.3'
50
64
  - - ">="
51
65
  - !ruby/object:Gem::Version
52
- version: 12.3.1
66
+ version: 2.3.1
53
67
  - !ruby/object:Gem::Dependency
54
- name: test-unit
68
+ name: rake
55
69
  requirement: !ruby/object:Gem::Requirement
56
70
  requirements:
57
71
  - - "~>"
58
72
  - !ruby/object:Gem::Version
59
- version: '3.2'
73
+ version: '13.0'
60
74
  - - ">="
61
75
  - !ruby/object:Gem::Version
62
- version: 3.2.7
76
+ version: 13.0.1
63
77
  type: :development
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
81
  - - "~>"
68
82
  - !ruby/object:Gem::Version
69
- version: '3.2'
83
+ version: '13.0'
70
84
  - - ">="
71
85
  - !ruby/object:Gem::Version
72
- version: 3.2.7
86
+ version: 13.0.1
73
87
  - !ruby/object:Gem::Dependency
74
- name: simplecov
88
+ name: standard
75
89
  requirement: !ruby/object:Gem::Requirement
76
90
  requirements:
77
91
  - - "~>"
78
92
  - !ruby/object:Gem::Version
79
- version: 0.16.1
93
+ version: '0.7'
80
94
  type: :development
81
95
  prerelease: false
82
96
  version_requirements: !ruby/object:Gem::Requirement
83
97
  requirements:
84
98
  - - "~>"
85
99
  - !ruby/object:Gem::Version
86
- version: 0.16.1
100
+ version: '0.7'
87
101
  - !ruby/object:Gem::Dependency
88
- name: codecov
102
+ name: simplecov
89
103
  requirement: !ruby/object:Gem::Requirement
90
104
  requirements:
91
105
  - - "~>"
92
106
  - !ruby/object:Gem::Version
93
- version: 0.1.10
107
+ version: 0.19.0
94
108
  type: :development
95
109
  prerelease: false
96
110
  version_requirements: !ruby/object:Gem::Requirement
97
111
  requirements:
98
112
  - - "~>"
99
113
  - !ruby/object:Gem::Version
100
- version: 0.1.10
114
+ version: 0.19.0
101
115
  - !ruby/object:Gem::Dependency
102
- name: json
116
+ name: test-unit
103
117
  requirement: !ruby/object:Gem::Requirement
104
118
  requirements:
105
119
  - - "~>"
106
120
  - !ruby/object:Gem::Version
107
- version: '2.1'
121
+ version: '3.3'
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 3.3.6
108
125
  type: :development
109
126
  prerelease: false
110
127
  version_requirements: !ruby/object:Gem::Requirement
111
128
  requirements:
112
129
  - - "~>"
113
130
  - !ruby/object:Gem::Version
114
- version: '2.1'
131
+ version: '3.3'
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 3.3.6
115
135
  - !ruby/object:Gem::Dependency
116
136
  name: vcr
117
137
  requirement: !ruby/object:Gem::Requirement
118
138
  requirements:
119
139
  - - "~>"
120
140
  - !ruby/object:Gem::Version
121
- version: '4.0'
141
+ version: '6.0'
122
142
  type: :development
123
143
  prerelease: false
124
144
  version_requirements: !ruby/object:Gem::Requirement
125
145
  requirements:
126
146
  - - "~>"
127
147
  - !ruby/object:Gem::Version
128
- version: '4.0'
148
+ version: '6.0'
129
149
  - !ruby/object:Gem::Dependency
130
150
  name: webmock
131
151
  requirement: !ruby/object:Gem::Requirement
132
152
  requirements:
133
153
  - - "~>"
134
154
  - !ruby/object:Gem::Version
135
- version: '3.3'
155
+ version: '3.9'
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: 3.9.3
136
159
  type: :development
137
160
  prerelease: false
138
161
  version_requirements: !ruby/object:Gem::Requirement
139
162
  requirements:
140
163
  - - "~>"
141
164
  - !ruby/object:Gem::Version
142
- version: '3.3'
165
+ version: '3.9'
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: 3.9.3
143
169
  - !ruby/object:Gem::Dependency
144
170
  name: faraday
145
171
  requirement: !ruby/object:Gem::Requirement
146
172
  requirements:
147
173
  - - "~>"
148
174
  - !ruby/object:Gem::Version
149
- version: 0.14.0
175
+ version: '1.1'
150
176
  type: :runtime
151
177
  prerelease: false
152
178
  version_requirements: !ruby/object:Gem::Requirement
153
179
  requirements:
154
180
  - - "~>"
155
181
  - !ruby/object:Gem::Version
156
- version: 0.14.0
182
+ version: '1.1'
157
183
  - !ruby/object:Gem::Dependency
158
184
  name: faraday_middleware
159
185
  requirement: !ruby/object:Gem::Requirement
160
186
  requirements:
161
187
  - - "~>"
162
188
  - !ruby/object:Gem::Version
163
- version: 0.12.2
189
+ version: '1.0'
164
190
  type: :runtime
165
191
  prerelease: false
166
192
  version_requirements: !ruby/object:Gem::Requirement
167
193
  requirements:
168
194
  - - "~>"
169
195
  - !ruby/object:Gem::Version
170
- version: 0.12.2
196
+ version: '1.0'
171
197
  - !ruby/object:Gem::Dependency
172
- name: thor
198
+ name: multi_json
173
199
  requirement: !ruby/object:Gem::Requirement
174
200
  requirements:
175
201
  - - "~>"
176
202
  - !ruby/object:Gem::Version
177
- version: 0.20.0
203
+ version: '1.15'
178
204
  type: :runtime
179
205
  prerelease: false
180
206
  version_requirements: !ruby/object:Gem::Requirement
181
207
  requirements:
182
208
  - - "~>"
183
209
  - !ruby/object:Gem::Version
184
- version: 0.20.0
210
+ version: '1.15'
185
211
  - !ruby/object:Gem::Dependency
186
- name: multi_json
212
+ name: thor
187
213
  requirement: !ruby/object:Gem::Requirement
188
214
  requirements:
189
215
  - - "~>"
190
216
  - !ruby/object:Gem::Version
191
- version: '1.13'
217
+ version: '1.0'
192
218
  - - ">="
193
219
  - !ruby/object:Gem::Version
194
- version: 1.13.1
220
+ version: 1.0.1
195
221
  type: :runtime
196
222
  prerelease: false
197
223
  version_requirements: !ruby/object:Gem::Requirement
198
224
  requirements:
199
225
  - - "~>"
200
226
  - !ruby/object:Gem::Version
201
- version: '1.13'
227
+ version: '1.0'
202
228
  - - ">="
203
229
  - !ruby/object:Gem::Version
204
- version: 1.13.1
230
+ version: 1.0.1
205
231
  description: Low Level Ruby Client for the Crossref Search API
206
232
  email: myrmecocystus@gmail.com
207
233
  executables:
@@ -209,12 +235,11 @@ executables:
209
235
  extensions: []
210
236
  extra_rdoc_files: []
211
237
  files:
238
+ - ".github/workflows/ruby.yml"
212
239
  - ".gitignore"
213
- - ".travis.yml"
214
240
  - CHANGELOG.md
215
241
  - CODE_OF_CONDUCT.md
216
242
  - Gemfile
217
- - Gemfile.lock
218
243
  - LICENSE
219
244
  - README.md
220
245
  - Rakefile
@@ -222,8 +247,6 @@ files:
222
247
  - lib/serrano.rb
223
248
  - lib/serrano/cn.rb
224
249
  - lib/serrano/cnrequest.rb
225
- - lib/serrano/constants.rb
226
- - lib/serrano/cursor_testing.rb
227
250
  - lib/serrano/error.rb
228
251
  - lib/serrano/faraday.rb
229
252
  - lib/serrano/filterhandler.rb
@@ -238,7 +261,12 @@ files:
238
261
  homepage: https://github.com/sckott/serrano
239
262
  licenses:
240
263
  - MIT
241
- metadata: {}
264
+ metadata:
265
+ homepage_uri: https://github.com/sckott/serrano
266
+ documentation_uri: https://www.rubydoc.info/gems/serrano
267
+ changelog_uri: https://github.com/sckott/serrano/releases/tag/v1.0.0
268
+ source_code_uri: https://github.com/sckott/serrano
269
+ bug_tracker_uri: https://github.com/sckott/serrano/issues
242
270
  post_install_message:
243
271
  rdoc_options: []
244
272
  require_paths:
@@ -254,8 +282,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
282
  - !ruby/object:Gem::Version
255
283
  version: '0'
256
284
  requirements: []
257
- rubyforge_project:
258
- rubygems_version: 2.7.3
285
+ rubygems_version: 3.1.2
259
286
  signing_key:
260
287
  specification_version: 4
261
288
  summary: Crossref Client