bolognese 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +56 -0
  3. data/.travis.yml +23 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +118 -0
  6. data/LICENSE +21 -0
  7. data/README.md +3 -0
  8. data/Rakefile +12 -0
  9. data/bin/bolognese +5 -0
  10. data/bolognese.gemspec +40 -0
  11. data/lib/bolognese.rb +12 -0
  12. data/lib/bolognese/author_utils.rb +61 -0
  13. data/lib/bolognese/cli.rb +38 -0
  14. data/lib/bolognese/crossref.rb +202 -0
  15. data/lib/bolognese/datacite.rb +157 -0
  16. data/lib/bolognese/date_utils.rb +48 -0
  17. data/lib/bolognese/doi_utils.rb +48 -0
  18. data/lib/bolognese/github.rb +106 -0
  19. data/lib/bolognese/metadata.rb +30 -0
  20. data/lib/bolognese/orcid.rb +24 -0
  21. data/lib/bolognese/pid_utils.rb +23 -0
  22. data/lib/bolognese/pubmed.rb +34 -0
  23. data/lib/bolognese/string.rb +5 -0
  24. data/lib/bolognese/utils.rb +27 -0
  25. data/lib/bolognese/version.rb +3 -0
  26. data/spec/cli_spec.rb +37 -0
  27. data/spec/crossref_spec.rb +113 -0
  28. data/spec/datacite_spec.rb +49 -0
  29. data/spec/doi_spec.rb +89 -0
  30. data/spec/fixtures/crossref.xml +742 -0
  31. data/spec/fixtures/datacite.xml +40 -0
  32. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_crossref.yml +760 -0
  33. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_schema_org.yml +1476 -0
  34. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/datacite/as_datacite.yml +214 -0
  35. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/datacite/as_schema_org.yml +384 -0
  36. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/crossref.yml +44 -0
  37. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/datacite.yml +44 -0
  38. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/medra.yml +44 -0
  39. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/not_found.yml +44 -0
  40. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_test.yml +843 -0
  41. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_SICI_DOI.yml +277 -0
  42. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_data_citation.yml +15755 -0
  43. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/date_in_future.yml +2691 -0
  44. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/journal_article.yml +1857 -0
  45. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/not_found_error.yml +93 -0
  46. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/posted_content.yml +5715 -0
  47. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/BlogPosting.yml +307 -0
  48. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Dataset.yml +343 -0
  49. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/crossref.yml +44 -0
  50. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/crossref_doi_not_url.yml +44 -0
  51. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/datacite.yml +44 -0
  52. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/datacite_doi_http.yml +44 -0
  53. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/orcid.yml +44 -0
  54. data/spec/metadata_spec.rb +35 -0
  55. data/spec/orcid_spec.rb +23 -0
  56. data/spec/spec_helper.rb +88 -0
  57. metadata +419 -0
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.crossref.org/doiRA/10.1371/JOURNAL.PONE.0000030
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Crossref-Deployment-Name:
22
+ - svc1-1
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Language:
26
+ - en-US
27
+ Content-Length:
28
+ - '66'
29
+ Date:
30
+ - Wed, 15 Feb 2017 21:25:43 GMT
31
+ Connection:
32
+ - close
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ [
37
+ {
38
+ "DOI": "10.1371/JOURNAL.PONE.0000030",
39
+ "RA": "Crossref"
40
+ }
41
+ ]
42
+ http_version:
43
+ recorded_at: Wed, 15 Feb 2017 21:25:43 GMT
44
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.crossref.org/doiRA/10.1371/JOURNAL.PONE.0000030
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Crossref-Deployment-Name:
22
+ - svc1-1
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Language:
26
+ - en-US
27
+ Content-Length:
28
+ - '66'
29
+ Date:
30
+ - Wed, 15 Feb 2017 21:25:42 GMT
31
+ Connection:
32
+ - close
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ [
37
+ {
38
+ "DOI": "10.1371/JOURNAL.PONE.0000030",
39
+ "RA": "Crossref"
40
+ }
41
+ ]
42
+ http_version:
43
+ recorded_at: Wed, 15 Feb 2017 21:25:42 GMT
44
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.crossref.org/doiRA/10.5438/4K3M-NYVG
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Crossref-Deployment-Name:
22
+ - svc1-1
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Language:
26
+ - en-US
27
+ Content-Length:
28
+ - '55'
29
+ Date:
30
+ - Wed, 15 Feb 2017 21:25:43 GMT
31
+ Connection:
32
+ - close
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ [
37
+ {
38
+ "DOI": "10.5438/4K3M-NYVG",
39
+ "RA": "DataCite"
40
+ }
41
+ ]
42
+ http_version:
43
+ recorded_at: Wed, 15 Feb 2017 21:25:44 GMT
44
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.crossref.org/doiRA/10.5438/4K3M-NYVG
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Crossref-Deployment-Name:
22
+ - svc1-1
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Language:
26
+ - en-US
27
+ Content-Length:
28
+ - '55'
29
+ Date:
30
+ - Wed, 15 Feb 2017 21:25:44 GMT
31
+ Connection:
32
+ - close
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ [
37
+ {
38
+ "DOI": "10.5438/4K3M-NYVG",
39
+ "RA": "DataCite"
40
+ }
41
+ ]
42
+ http_version:
43
+ recorded_at: Wed, 15 Feb 2017 21:25:45 GMT
44
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.crossref.org/doiRA/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Crossref-Deployment-Name:
22
+ - svc1-1
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Language:
26
+ - en-US
27
+ Content-Length:
28
+ - '51'
29
+ Date:
30
+ - Wed, 15 Feb 2017 21:25:44 GMT
31
+ Connection:
32
+ - close
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ [
37
+ {
38
+ "DOI": "/doiRA",
39
+ "status": "Invalid DOI"
40
+ }
41
+ ]
42
+ http_version:
43
+ recorded_at: Wed, 15 Feb 2017 21:25:44 GMT
44
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bolognese::Metadata, vcr: true do
4
+ context "find PID provider" do
5
+ it "crossref" do
6
+ id = "https://doi.org/10.1371/journal.pone.0000030"
7
+ subject = Bolognese::Metadata.new(id)
8
+ expect(subject.provider).to eq("crossref")
9
+ end
10
+
11
+ it "crossref doi not url" do
12
+ id = "10.1371/journal.pone.0000030"
13
+ subject = Bolognese::Metadata.new(id)
14
+ expect(subject.provider).to eq("crossref")
15
+ end
16
+
17
+ it "datacite" do
18
+ id = "https://doi.org/10.5438/4K3M-NYVG"
19
+ subject = Bolognese::Metadata.new(id)
20
+ expect(subject.provider).to eq("datacite")
21
+ end
22
+
23
+ it "datacite doi http" do
24
+ id = "http://doi.org/10.5438/4K3M-NYVG"
25
+ subject = Bolognese::Metadata.new(id)
26
+ expect(subject.provider).to eq("datacite")
27
+ end
28
+
29
+ it "orcid" do
30
+ id = "http://orcid.org/0000-0002-0159-2197"
31
+ subject = Bolognese::Metadata.new(id)
32
+ expect(subject.provider).to eq("orcid")
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bolognese::Metadata, vcr: true do
4
+ # context "orcid metadata" do
5
+ # before(:each) { allow(Time).to receive(:now).and_return(Time.mktime(2015, 6, 25)) }
6
+
7
+ # let(:orcid) { "0000-0002-0159-2197" }
8
+
9
+ # it "get_orcid_metadata" do
10
+ # response = subject.get_orcid_metadata(orcid)
11
+ # expect(response["title"]).to eq("ORCID record for Jonathan A. Eisen")
12
+ # expect(response["container-title"]).to eq("ORCID Registry")
13
+ # expect(response["issued"]).to eq("2015")
14
+ # expect(response["type"]).to eq("entry")
15
+ # expect(response["URL"]).to eq("http://orcid.org/0000-0002-0159-2197")
16
+ # end
17
+
18
+ # it "get_orcid_metadata with not found error" do
19
+ # response = subject.get_orcid_metadata("#{orcid}x")
20
+ # expect(response).to eq("errors"=>"Resource not found.")
21
+ # end
22
+ # end
23
+ end
@@ -0,0 +1,88 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ require 'simplecov'
5
+ SimpleCov.start
6
+
7
+ require 'bolognese'
8
+ require 'maremma'
9
+ require 'rspec'
10
+ require 'rack/test'
11
+ require 'webmock/rspec'
12
+ require 'rspec/xsd'
13
+ require 'nokogiri'
14
+ require 'vcr'
15
+
16
+ RSpec.configure do |config|
17
+ config.order = :random
18
+ config.include RSpec::XSD
19
+ config.include WebMock::API
20
+ config.include Rack::Test::Methods
21
+ config.expect_with :rspec do |c|
22
+ c.syntax = :expect
23
+ end
24
+
25
+ config.before do
26
+ ARGV.replace []
27
+ end
28
+ end
29
+
30
+ def fixture_path
31
+ File.expand_path("../fixtures", __FILE__) + '/'
32
+ end
33
+
34
+ # This code was adapted from Thor, available under MIT-LICENSE
35
+ # Copyright (c) 2008 Yehuda Katz, Eric Hodel, et al.
36
+ def capture(stream)
37
+ begin
38
+ stream = stream.to_s
39
+ eval "$#{stream} = StringIO.new"
40
+ yield
41
+ result = eval("$#{stream}").string
42
+ ensure
43
+ eval("$#{stream} = #{stream.upcase}")
44
+ end
45
+
46
+ result
47
+ end
48
+
49
+ def capture_stdout(&block)
50
+ original_stdout = $stdout
51
+ $stdout = fake = StringIO.new
52
+ begin
53
+ yield
54
+ ensure
55
+ $stdout = original_stdout
56
+ end
57
+ fake.string
58
+ end
59
+
60
+ def capture_stderr(&block)
61
+ original_stderr = $stderr
62
+ $stderr = fake = StringIO.new
63
+ begin
64
+ yield
65
+ ensure
66
+ $stderr = original_stderr
67
+ end
68
+ fake.string
69
+ end
70
+
71
+ # This code was adapted from Ruby on Rails, available under MIT-LICENSE
72
+ # Copyright (c) 2004-2013 David Heinemeier Hansson
73
+ def silence_warnings
74
+ old_verbose, $VERBOSE = $VERBOSE, nil
75
+ yield
76
+ ensure
77
+ $VERBOSE = old_verbose
78
+ end
79
+
80
+ alias silence capture
81
+
82
+ VCR.configure do |c|
83
+ c.cassette_library_dir = "spec/fixtures/vcr_cassettes"
84
+ c.hook_into :webmock
85
+ c.ignore_localhost = true
86
+ c.ignore_hosts 'codeclimate.com'
87
+ c.configure_rspec_metadata!
88
+ end
metadata ADDED
@@ -0,0 +1,419 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bolognese
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
5
+ platform: ruby
6
+ authors:
7
+ - Martin Fenner
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-02-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: maremma
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.6'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.6.8
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '1.6'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.6.8
47
+ - !ruby/object:Gem::Dependency
48
+ name: builder
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.2'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 3.2.2
57
+ type: :runtime
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '3.2'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 3.2.2
67
+ - !ruby/object:Gem::Dependency
68
+ name: activesupport
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '4.2'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 4.2.5
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '4.2'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 4.2.5
87
+ - !ruby/object:Gem::Dependency
88
+ name: dotenv
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - "~>"
92
+ - !ruby/object:Gem::Version
93
+ version: '2.1'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 2.1.1
97
+ type: :runtime
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.1'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 2.1.1
107
+ - !ruby/object:Gem::Dependency
108
+ name: thor
109
+ requirement: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - "~>"
112
+ - !ruby/object:Gem::Version
113
+ version: '0.19'
114
+ type: :runtime
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - "~>"
119
+ - !ruby/object:Gem::Version
120
+ version: '0.19'
121
+ - !ruby/object:Gem::Dependency
122
+ name: namae
123
+ requirement: !ruby/object:Gem::Requirement
124
+ requirements:
125
+ - - "~>"
126
+ - !ruby/object:Gem::Version
127
+ version: 0.10.2
128
+ type: :runtime
129
+ prerelease: false
130
+ version_requirements: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - "~>"
133
+ - !ruby/object:Gem::Version
134
+ version: 0.10.2
135
+ - !ruby/object:Gem::Dependency
136
+ name: postrank-uri
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '1.0'
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: 1.0.18
145
+ type: :runtime
146
+ prerelease: false
147
+ version_requirements: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '1.0'
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ version: 1.0.18
155
+ - !ruby/object:Gem::Dependency
156
+ name: bundler
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '1.0'
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '1.0'
169
+ - !ruby/object:Gem::Dependency
170
+ name: rspec
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: '3.4'
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - "~>"
181
+ - !ruby/object:Gem::Version
182
+ version: '3.4'
183
+ - !ruby/object:Gem::Dependency
184
+ name: rspec-xsd
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: 0.1.0
190
+ type: :development
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - "~>"
195
+ - !ruby/object:Gem::Version
196
+ version: 0.1.0
197
+ - !ruby/object:Gem::Dependency
198
+ name: rake
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - "~>"
202
+ - !ruby/object:Gem::Version
203
+ version: '12.0'
204
+ type: :development
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: '12.0'
211
+ - !ruby/object:Gem::Dependency
212
+ name: rack-test
213
+ requirement: !ruby/object:Gem::Requirement
214
+ requirements:
215
+ - - "~>"
216
+ - !ruby/object:Gem::Version
217
+ version: '0'
218
+ type: :development
219
+ prerelease: false
220
+ version_requirements: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - "~>"
223
+ - !ruby/object:Gem::Version
224
+ version: '0'
225
+ - !ruby/object:Gem::Dependency
226
+ name: vcr
227
+ requirement: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - "~>"
230
+ - !ruby/object:Gem::Version
231
+ version: '3.0'
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: 3.0.3
235
+ type: :development
236
+ prerelease: false
237
+ version_requirements: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - "~>"
240
+ - !ruby/object:Gem::Version
241
+ version: '3.0'
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: 3.0.3
245
+ - !ruby/object:Gem::Dependency
246
+ name: webmock
247
+ requirement: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - "~>"
250
+ - !ruby/object:Gem::Version
251
+ version: '1.22'
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ version: 1.22.3
255
+ type: :development
256
+ prerelease: false
257
+ version_requirements: !ruby/object:Gem::Requirement
258
+ requirements:
259
+ - - "~>"
260
+ - !ruby/object:Gem::Version
261
+ version: '1.22'
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: 1.22.3
265
+ - !ruby/object:Gem::Dependency
266
+ name: codeclimate-test-reporter
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - "~>"
270
+ - !ruby/object:Gem::Version
271
+ version: '1.0'
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ version: 1.0.0
275
+ type: :development
276
+ prerelease: false
277
+ version_requirements: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - "~>"
280
+ - !ruby/object:Gem::Version
281
+ version: '1.0'
282
+ - - ">="
283
+ - !ruby/object:Gem::Version
284
+ version: 1.0.0
285
+ - !ruby/object:Gem::Dependency
286
+ name: simplecov
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - "~>"
290
+ - !ruby/object:Gem::Version
291
+ version: 0.12.0
292
+ type: :development
293
+ prerelease: false
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - "~>"
297
+ - !ruby/object:Gem::Version
298
+ version: 0.12.0
299
+ description: Convert DOI metadata to and from Crossref and DataCite XML, as well as
300
+ schema.org/JSON-LD
301
+ email: mfenner@datacite.org
302
+ executables:
303
+ - bolognese
304
+ extensions: []
305
+ extra_rdoc_files:
306
+ - README.md
307
+ files:
308
+ - ".gitignore"
309
+ - ".travis.yml"
310
+ - Gemfile
311
+ - Gemfile.lock
312
+ - LICENSE
313
+ - README.md
314
+ - Rakefile
315
+ - bin/bolognese
316
+ - bolognese.gemspec
317
+ - lib/bolognese.rb
318
+ - lib/bolognese/author_utils.rb
319
+ - lib/bolognese/cli.rb
320
+ - lib/bolognese/crossref.rb
321
+ - lib/bolognese/datacite.rb
322
+ - lib/bolognese/date_utils.rb
323
+ - lib/bolognese/doi_utils.rb
324
+ - lib/bolognese/github.rb
325
+ - lib/bolognese/metadata.rb
326
+ - lib/bolognese/orcid.rb
327
+ - lib/bolognese/pid_utils.rb
328
+ - lib/bolognese/pubmed.rb
329
+ - lib/bolognese/string.rb
330
+ - lib/bolognese/utils.rb
331
+ - lib/bolognese/version.rb
332
+ - spec/cli_spec.rb
333
+ - spec/crossref_spec.rb
334
+ - spec/datacite_spec.rb
335
+ - spec/doi_spec.rb
336
+ - spec/fixtures/crossref.xml
337
+ - spec/fixtures/datacite.xml
338
+ - spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_crossref.yml
339
+ - spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_schema_org.yml
340
+ - spec/fixtures/vcr_cassettes/Bolognese_CLI/read/datacite/as_datacite.yml
341
+ - spec/fixtures/vcr_cassettes/Bolognese_CLI/read/datacite/as_schema_org.yml
342
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/crossref.yml
343
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/datacite.yml
344
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/medra.yml
345
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/not_found.yml
346
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_test.yml
347
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_SICI_DOI.yml
348
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_data_citation.yml
349
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/date_in_future.yml
350
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/journal_article.yml
351
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/not_found_error.yml
352
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/posted_content.yml
353
+ - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/BlogPosting.yml
354
+ - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Dataset.yml
355
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/crossref.yml
356
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/crossref_doi_not_url.yml
357
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/datacite.yml
358
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/datacite_doi_http.yml
359
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/orcid.yml
360
+ - spec/metadata_spec.rb
361
+ - spec/orcid_spec.rb
362
+ - spec/spec_helper.rb
363
+ homepage: https://github.com/datacite/bolognese
364
+ licenses:
365
+ - MIT
366
+ metadata: {}
367
+ post_install_message:
368
+ rdoc_options: []
369
+ require_paths:
370
+ - lib
371
+ required_ruby_version: !ruby/object:Gem::Requirement
372
+ requirements:
373
+ - - ">="
374
+ - !ruby/object:Gem::Version
375
+ version: '0'
376
+ required_rubygems_version: !ruby/object:Gem::Requirement
377
+ requirements:
378
+ - - ">="
379
+ - !ruby/object:Gem::Version
380
+ version: '0'
381
+ requirements: []
382
+ rubyforge_project:
383
+ rubygems_version: 2.6.8
384
+ signing_key:
385
+ specification_version: 4
386
+ summary: Ruby client library for conversion of DOI Metadata
387
+ test_files:
388
+ - spec/cli_spec.rb
389
+ - spec/crossref_spec.rb
390
+ - spec/datacite_spec.rb
391
+ - spec/doi_spec.rb
392
+ - spec/fixtures/crossref.xml
393
+ - spec/fixtures/datacite.xml
394
+ - spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_crossref.yml
395
+ - spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_schema_org.yml
396
+ - spec/fixtures/vcr_cassettes/Bolognese_CLI/read/datacite/as_datacite.yml
397
+ - spec/fixtures/vcr_cassettes/Bolognese_CLI/read/datacite/as_schema_org.yml
398
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/crossref.yml
399
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/datacite.yml
400
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/medra.yml
401
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/not_found.yml
402
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_test.yml
403
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_SICI_DOI.yml
404
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_data_citation.yml
405
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/date_in_future.yml
406
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/journal_article.yml
407
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/not_found_error.yml
408
+ - spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/posted_content.yml
409
+ - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/BlogPosting.yml
410
+ - spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Dataset.yml
411
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/crossref.yml
412
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/crossref_doi_not_url.yml
413
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/datacite.yml
414
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/datacite_doi_http.yml
415
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/orcid.yml
416
+ - spec/metadata_spec.rb
417
+ - spec/orcid_spec.rb
418
+ - spec/spec_helper.rb
419
+ has_rdoc: