briard 2.4.1 → 2.6.0

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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/codeql-analysis.yml +72 -0
  3. data/.github/workflows/rubocop.yml +50 -0
  4. data/.rubocop.yml +144 -620
  5. data/.rubocop_todo.yml +76 -0
  6. data/CHANGELOG.md +22 -0
  7. data/Gemfile +2 -0
  8. data/Gemfile.lock +43 -6
  9. data/Rakefile +1 -1
  10. data/{bolognese.gemspec → briard.gemspec} +46 -38
  11. data/lib/briard/array.rb +2 -2
  12. data/lib/briard/author_utils.rb +79 -71
  13. data/lib/briard/cli.rb +12 -13
  14. data/lib/briard/crossref_utils.rb +73 -61
  15. data/lib/briard/datacite_utils.rb +132 -106
  16. data/lib/briard/doi_utils.rb +10 -10
  17. data/lib/briard/metadata.rb +96 -106
  18. data/lib/briard/metadata_utils.rb +87 -78
  19. data/lib/briard/readers/bibtex_reader.rb +65 -65
  20. data/lib/briard/readers/cff_reader.rb +88 -70
  21. data/lib/briard/readers/citeproc_reader.rb +90 -84
  22. data/lib/briard/readers/codemeta_reader.rb +68 -50
  23. data/lib/briard/readers/crosscite_reader.rb +2 -2
  24. data/lib/briard/readers/crossref_reader.rb +249 -210
  25. data/lib/briard/readers/datacite_json_reader.rb +3 -3
  26. data/lib/briard/readers/datacite_reader.rb +225 -189
  27. data/lib/briard/readers/npm_reader.rb +49 -42
  28. data/lib/briard/readers/ris_reader.rb +82 -80
  29. data/lib/briard/readers/schema_org_reader.rb +182 -159
  30. data/lib/briard/string.rb +1 -1
  31. data/lib/briard/utils.rb +4 -4
  32. data/lib/briard/version.rb +3 -1
  33. data/lib/briard/whitelist_scrubber.rb +11 -4
  34. data/lib/briard/writers/bibtex_writer.rb +14 -8
  35. data/lib/briard/writers/cff_writer.rb +33 -26
  36. data/lib/briard/writers/codemeta_writer.rb +19 -15
  37. data/lib/briard/writers/csv_writer.rb +6 -4
  38. data/lib/briard/writers/datacite_json_writer.rb +8 -2
  39. data/lib/briard/writers/jats_writer.rb +33 -28
  40. data/lib/briard/writers/rdf_xml_writer.rb +1 -1
  41. data/lib/briard/writers/ris_writer.rb +30 -18
  42. data/lib/briard/writers/turtle_writer.rb +1 -1
  43. data/lib/briard.rb +6 -6
  44. data/rubocop.sarif +0 -0
  45. data/spec/array_spec.rb +5 -5
  46. data/spec/author_utils_spec.rb +151 -132
  47. data/spec/datacite_utils_spec.rb +135 -83
  48. data/spec/doi_utils_spec.rb +168 -164
  49. data/spec/find_from_format_spec.rb +69 -69
  50. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/onlies_keep_specific_tags.yml +65 -0
  51. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/removes_a_tags.yml +65 -0
  52. data/spec/metadata_spec.rb +91 -90
  53. data/spec/readers/bibtex_reader_spec.rb +43 -38
  54. data/spec/readers/cff_reader_spec.rb +165 -153
  55. data/spec/readers/citeproc_reader_spec.rb +45 -40
  56. data/spec/readers/codemeta_reader_spec.rb +128 -115
  57. data/spec/readers/crosscite_reader_spec.rb +34 -24
  58. data/spec/readers/crossref_reader_spec.rb +1098 -939
  59. data/spec/readers/datacite_json_reader_spec.rb +53 -40
  60. data/spec/readers/datacite_reader_spec.rb +1541 -1337
  61. data/spec/readers/npm_reader_spec.rb +48 -43
  62. data/spec/readers/ris_reader_spec.rb +53 -47
  63. data/spec/readers/schema_org_reader_spec.rb +329 -267
  64. data/spec/spec_helper.rb +6 -5
  65. data/spec/utils_spec.rb +371 -347
  66. data/spec/writers/bibtex_writer_spec.rb +143 -143
  67. data/spec/writers/cff_writer_spec.rb +96 -90
  68. data/spec/writers/citation_writer_spec.rb +34 -33
  69. data/spec/writers/citeproc_writer_spec.rb +226 -224
  70. data/spec/writers/codemeta_writer_spec.rb +18 -16
  71. data/spec/writers/crosscite_writer_spec.rb +91 -73
  72. data/spec/writers/crossref_writer_spec.rb +99 -91
  73. data/spec/writers/csv_writer_spec.rb +70 -70
  74. data/spec/writers/datacite_json_writer_spec.rb +78 -68
  75. data/spec/writers/datacite_writer_spec.rb +417 -322
  76. data/spec/writers/jats_writer_spec.rb +177 -161
  77. data/spec/writers/rdf_xml_writer_spec.rb +68 -63
  78. data/spec/writers/ris_writer_spec.rb +162 -162
  79. data/spec/writers/turtle_writer_spec.rb +47 -47
  80. metadata +250 -160
  81. data/.github/workflows/release.yml +0 -47
@@ -3,312 +3,316 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Briard::Metadata, vcr: true do
6
- let(:input) { "https://doi.org/10.1101/097196" }
6
+ subject { described_class.new(input: input, from: 'crossref') }
7
7
 
8
- subject { Briard::Metadata.new(input: input, from: "crossref") }
8
+ let(:input) { 'https://doi.org/10.1101/097196' }
9
9
 
10
- context "doi resolver" do
11
- it "doi" do
12
- doi = "10.5061/DRYAD.8515"
10
+ context 'doi resolver' do
11
+ it 'doi' do
12
+ doi = '10.5061/DRYAD.8515'
13
13
  response = subject.doi_resolver(doi)
14
- expect(response).to eq("https://doi.org/")
14
+ expect(response).to eq('https://doi.org/')
15
15
  end
16
16
 
17
- it "doi with protocol" do
18
- doi = "doi:10.5061/DRYAD.8515"
17
+ it 'doi with protocol' do
18
+ doi = 'doi:10.5061/DRYAD.8515'
19
19
  response = subject.doi_resolver(doi)
20
- expect(response).to eq("https://doi.org/")
20
+ expect(response).to eq('https://doi.org/')
21
21
  end
22
22
 
23
- it "https url" do
24
- doi = "https://doi.org/10.5061/dryad.8515"
23
+ it 'https url' do
24
+ doi = 'https://doi.org/10.5061/dryad.8515'
25
25
  response = subject.doi_resolver(doi)
26
- expect(response).to eq("https://doi.org/")
26
+ expect(response).to eq('https://doi.org/')
27
27
  end
28
28
 
29
- it "dx.doi.org url" do
30
- doi = "http://dx.doi.org/10.5061/dryad.8515"
29
+ it 'dx.doi.org url' do
30
+ doi = 'http://dx.doi.org/10.5061/dryad.8515'
31
31
  response = subject.doi_resolver(doi)
32
- expect(response).to eq("https://doi.org/")
32
+ expect(response).to eq('https://doi.org/')
33
33
  end
34
34
 
35
- it "stage resolver" do
36
- doi = "https://handle.stage.datacite.org/10.5061/dryad.8515"
35
+ it 'stage resolver' do
36
+ doi = 'https://handle.stage.datacite.org/10.5061/dryad.8515'
37
37
  response = subject.doi_resolver(doi)
38
- expect(response).to eq("https://handle.stage.datacite.org/")
38
+ expect(response).to eq('https://handle.stage.datacite.org/')
39
39
  end
40
40
 
41
- it "stage resolver http" do
42
- doi = "http://handle.stage.datacite.org/10.5061/dryad.8515"
41
+ it 'stage resolver http' do
42
+ doi = 'http://handle.stage.datacite.org/10.5061/dryad.8515'
43
43
  response = subject.doi_resolver(doi)
44
- expect(response).to eq("https://handle.stage.datacite.org/")
44
+ expect(response).to eq('https://handle.stage.datacite.org/')
45
45
  end
46
46
 
47
- it "force stage resolver" do
48
- doi = "https://doi.org/10.5061/dryad.8515"
47
+ it 'force stage resolver' do
48
+ doi = 'https://doi.org/10.5061/dryad.8515'
49
49
  response = subject.doi_resolver(doi, sandbox: true)
50
- expect(response).to eq("https://handle.stage.datacite.org/")
50
+ expect(response).to eq('https://handle.stage.datacite.org/')
51
51
  end
52
52
  end
53
53
 
54
- context "doi_api_url" do
55
- it "doi" do
56
- doi = "10.5061/DRYAD.8515"
54
+ context 'doi_api_url' do
55
+ it 'doi' do
56
+ doi = '10.5061/DRYAD.8515'
57
57
  response = subject.doi_api_url(doi)
58
- expect(response).to eq("https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client")
58
+ expect(response).to eq('https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client')
59
59
  end
60
60
 
61
- it "doi with protocol" do
62
- doi = "doi:10.5061/DRYAD.8515"
61
+ it 'doi with protocol' do
62
+ doi = 'doi:10.5061/DRYAD.8515'
63
63
  response = subject.doi_api_url(doi)
64
- expect(response).to eq("https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client")
64
+ expect(response).to eq('https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client')
65
65
  end
66
66
 
67
- it "https url" do
68
- doi = "https://doi.org/10.5061/dryad.8515"
67
+ it 'https url' do
68
+ doi = 'https://doi.org/10.5061/dryad.8515'
69
69
  response = subject.doi_api_url(doi)
70
- expect(response).to eq("https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client")
70
+ expect(response).to eq('https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client')
71
71
  end
72
72
 
73
- it "dx.doi.org url" do
74
- doi = "http://dx.doi.org/10.5061/dryad.8515"
73
+ it 'dx.doi.org url' do
74
+ doi = 'http://dx.doi.org/10.5061/dryad.8515'
75
75
  response = subject.doi_api_url(doi)
76
- expect(response).to eq("https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client")
76
+ expect(response).to eq('https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client')
77
77
  end
78
78
 
79
- it "test resolver" do
80
- doi = "https://handle.stage.datacite.org/10.5061/dryad.8515"
79
+ it 'test resolver' do
80
+ doi = 'https://handle.stage.datacite.org/10.5061/dryad.8515'
81
81
  response = subject.doi_api_url(doi)
82
- expect(response).to eq("https://api.stage.datacite.org/dois/10.5061/dryad.8515?include=media,client")
82
+ expect(response).to eq('https://api.stage.datacite.org/dois/10.5061/dryad.8515?include=media,client')
83
83
  end
84
84
 
85
- it "test resolver http" do
86
- doi = "http://handle.stage.datacite.org/10.5061/dryad.8515"
85
+ it 'test resolver http' do
86
+ doi = 'http://handle.stage.datacite.org/10.5061/dryad.8515'
87
87
  response = subject.doi_api_url(doi)
88
- expect(response).to eq("https://api.stage.datacite.org/dois/10.5061/dryad.8515?include=media,client")
88
+ expect(response).to eq('https://api.stage.datacite.org/dois/10.5061/dryad.8515?include=media,client')
89
89
  end
90
90
 
91
- it "force test resolver" do
92
- doi = "https://doi.org/10.5061/dryad.8515"
91
+ it 'force test resolver' do
92
+ doi = 'https://doi.org/10.5061/dryad.8515'
93
93
  response = subject.doi_api_url(doi, sandbox: true)
94
- expect(response).to eq("https://api.stage.datacite.org/dois/10.5061/dryad.8515?include=media,client")
94
+ expect(response).to eq('https://api.stage.datacite.org/dois/10.5061/dryad.8515?include=media,client')
95
95
  end
96
96
  end
97
97
 
98
- context "normalize doi" do
99
- it "doi" do
100
- doi = "10.5061/DRYAD.8515"
98
+ context 'normalize doi' do
99
+ it 'doi' do
100
+ doi = '10.5061/DRYAD.8515'
101
101
  response = subject.normalize_doi(doi)
102
- expect(response).to eq("https://doi.org/10.5061/dryad.8515")
102
+ expect(response).to eq('https://doi.org/10.5061/dryad.8515')
103
103
  end
104
104
 
105
- it "doi with protocol" do
106
- doi = "doi:10.5061/DRYAD.8515"
105
+ it 'doi with protocol' do
106
+ doi = 'doi:10.5061/DRYAD.8515'
107
107
  response = subject.normalize_doi(doi)
108
- expect(response).to eq("https://doi.org/10.5061/dryad.8515")
108
+ expect(response).to eq('https://doi.org/10.5061/dryad.8515')
109
109
  end
110
110
 
111
- it "SICI doi" do
112
- doi = "10.1890/0012-9658(2006)87[2832:tiopma]2.0.co;2"
111
+ it 'SICI doi' do
112
+ doi = '10.1890/0012-9658(2006)87[2832:tiopma]2.0.co;2'
113
113
  response = subject.normalize_doi(doi)
114
- expect(response).to eq("https://doi.org/10.1890/0012-9658(2006)87%5B2832:tiopma%5D2.0.co;2")
114
+ expect(response).to eq('https://doi.org/10.1890/0012-9658(2006)87%5B2832:tiopma%5D2.0.co;2')
115
115
  end
116
116
 
117
- it "https url" do
118
- doi = "https://doi.org/10.5061/dryad.8515"
117
+ it 'https url' do
118
+ doi = 'https://doi.org/10.5061/dryad.8515'
119
119
  response = subject.normalize_doi(doi)
120
- expect(response).to eq("https://doi.org/10.5061/dryad.8515")
120
+ expect(response).to eq('https://doi.org/10.5061/dryad.8515')
121
121
  end
122
122
 
123
- it "dx.doi.org url" do
124
- doi = "http://dx.doi.org/10.5061/dryad.8515"
123
+ it 'dx.doi.org url' do
124
+ doi = 'http://dx.doi.org/10.5061/dryad.8515'
125
125
  response = subject.normalize_doi(doi)
126
- expect(response).to eq("https://doi.org/10.5061/dryad.8515")
126
+ expect(response).to eq('https://doi.org/10.5061/dryad.8515')
127
127
  end
128
128
 
129
- it "not valid doi prefix" do
130
- doi = "https://doi.org/20.5061/dryad.8515"
129
+ it 'not valid doi prefix' do
130
+ doi = 'https://doi.org/20.5061/dryad.8515'
131
131
  response = subject.normalize_doi(doi)
132
- expect(response).to be_nil
132
+ expect(response.nil?).to be(true)
133
133
  end
134
134
 
135
- it "doi prefix with string" do
136
- doi = "https://doi.org/10.506X/dryad.8515"
135
+ it 'doi prefix with string' do
136
+ doi = 'https://doi.org/10.506X/dryad.8515'
137
137
  response = subject.normalize_doi(doi)
138
- expect(response).to be_nil
138
+ expect(response.nil?).to be(true)
139
139
  end
140
140
 
141
- it "doi prefix too long" do
142
- doi = "https://doi.org/10.506123/dryad.8515"
141
+ it 'doi prefix too long' do
142
+ doi = 'https://doi.org/10.506123/dryad.8515'
143
143
  response = subject.normalize_doi(doi)
144
- expect(response).to be_nil
144
+ expect(response.nil?).to be(true)
145
145
  end
146
146
 
147
- it "doi from url without doi proxy" do
148
- doi = "https://handle.net/10.5061/dryad.8515"
147
+ it 'doi from url without doi proxy' do
148
+ doi = 'https://handle.net/10.5061/dryad.8515'
149
149
  response = subject.normalize_doi(doi)
150
- expect(response).to be_nil
150
+ expect(response.nil?).to be(true)
151
151
  end
152
152
 
153
- it "url with one slash" do
154
- doi = "https:/doi.org/10.5061/dryad.8515"
153
+ it 'url with one slash' do
154
+ doi = 'https:/doi.org/10.5061/dryad.8515'
155
155
  response = subject.normalize_doi(doi)
156
- expect(response).to eq("https://doi.org/10.5061/dryad.8515")
156
+ expect(response).to eq('https://doi.org/10.5061/dryad.8515')
157
157
  end
158
158
 
159
- it "doi from datacite sandbox" do
160
- doi = "https://handle.stage.datacite.org/10.5438/55e5-t5c0"
159
+ it 'doi from datacite sandbox' do
160
+ doi = 'https://handle.stage.datacite.org/10.5438/55e5-t5c0'
161
161
  response = subject.normalize_doi(doi)
162
- expect(response).to eq("https://handle.stage.datacite.org/10.5438/55e5-t5c0")
162
+ expect(response).to eq('https://handle.stage.datacite.org/10.5438/55e5-t5c0')
163
163
  end
164
164
 
165
- it "doi force datacite sandbox" do
166
- doi = "10.5438/55e5-t5c0"
165
+ it 'doi force datacite sandbox' do
166
+ doi = '10.5438/55e5-t5c0'
167
167
  response = subject.normalize_doi(doi, sandbox: true)
168
- expect(response).to eq("https://handle.stage.datacite.org/10.5438/55e5-t5c0")
168
+ expect(response).to eq('https://handle.stage.datacite.org/10.5438/55e5-t5c0')
169
169
  end
170
170
  end
171
171
 
172
- context "doi_from_url" do
173
- it "url" do
174
- doi = subject.doi_from_url("https://doi.org/10.5061/dryad.8515")
175
- expect(doi).to eq("10.5061/dryad.8515")
172
+ context 'doi_from_url' do
173
+ it 'url' do
174
+ doi = subject.doi_from_url('https://doi.org/10.5061/dryad.8515')
175
+ expect(doi).to eq('10.5061/dryad.8515')
176
176
  end
177
177
 
178
- it "doi" do
179
- doi = subject.doi_from_url("10.5061/dryad.8515")
180
- expect(doi).to eq("10.5061/dryad.8515")
178
+ it 'doi' do
179
+ doi = subject.doi_from_url('10.5061/dryad.8515')
180
+ expect(doi).to eq('10.5061/dryad.8515')
181
181
  end
182
182
 
183
- it "doi with special characters" do
184
- doi = subject.doi_from_url("10.5067/terra+aqua/ceres/cldtyphist_l3.004")
185
- expect(doi).to eq("10.5067/terra+aqua/ceres/cldtyphist_l3.004")
183
+ it 'doi with special characters' do
184
+ doi = subject.doi_from_url('10.5067/terra+aqua/ceres/cldtyphist_l3.004')
185
+ expect(doi).to eq('10.5067/terra+aqua/ceres/cldtyphist_l3.004')
186
186
  end
187
187
 
188
- it "not a doi" do
189
- doi = subject.doi_from_url("https://doi.org/10.5061")
190
- expect(doi).to be nil
188
+ it 'not a doi' do
189
+ doi = subject.doi_from_url('https://doi.org/10.5061')
190
+ expect(doi.nil?).to be(true)
191
191
  end
192
192
 
193
- it "sandbox url" do
194
- doi = subject.doi_from_url("https://handle.stage.datacite.org/10.5438/55e5-t5c0")
195
- expect(doi).to eq("10.5438/55e5-t5c0")
193
+ it 'sandbox url' do
194
+ doi = subject.doi_from_url('https://handle.stage.datacite.org/10.5438/55e5-t5c0')
195
+ expect(doi).to eq('10.5438/55e5-t5c0')
196
196
  end
197
197
  end
198
198
 
199
- context "doi registration agency" do
200
- it "datacite" do
201
- doi = "https://doi.org/10.5061/dryad.8515"
199
+ context 'doi registration agency' do
200
+ it 'datacite' do
201
+ doi = 'https://doi.org/10.5061/dryad.8515'
202
202
  response = subject.get_doi_ra(doi)
203
- expect(response).to eq("DataCite")
203
+ expect(response).to eq('DataCite')
204
204
  end
205
205
 
206
- it "crossref" do
207
- doi = "10.1371/journal.pone.0000030"
206
+ it 'crossref' do
207
+ doi = '10.1371/journal.pone.0000030'
208
208
  response = subject.get_doi_ra(doi)
209
- expect(response).to eq("Crossref")
209
+ expect(response).to eq('Crossref')
210
210
  end
211
211
 
212
- it "medra" do
213
- doi = "https://doi.org/10.1392/roma081203"
212
+ it 'medra' do
213
+ doi = 'https://doi.org/10.1392/roma081203'
214
214
  response = subject.get_doi_ra(doi)
215
- expect(response).to eq("mEDRA")
215
+ expect(response).to eq('mEDRA')
216
216
  end
217
217
 
218
- it "kisti" do
219
- doi = "https://doi.org/10.5012/bkcs.2013.34.10.2889"
218
+ it 'kisti' do
219
+ doi = 'https://doi.org/10.5012/bkcs.2013.34.10.2889'
220
220
  response = subject.get_doi_ra(doi)
221
- expect(response).to eq("KISTI")
221
+ expect(response).to eq('KISTI')
222
222
  end
223
223
 
224
- it "jalc" do
225
- doi = "https://doi.org/10.11367/grsj1979.12.283"
224
+ it 'jalc' do
225
+ doi = 'https://doi.org/10.11367/grsj1979.12.283'
226
226
  response = subject.get_doi_ra(doi)
227
- expect(response).to eq("JaLC")
227
+ expect(response).to eq('JaLC')
228
228
  end
229
229
 
230
- it "op" do
231
- doi = "https://doi.org/10.2791/81962"
230
+ it 'op' do
231
+ doi = 'https://doi.org/10.2791/81962'
232
232
  response = subject.get_doi_ra(doi)
233
- expect(response).to eq("OP")
233
+ expect(response).to eq('OP')
234
234
  end
235
235
 
236
- it "not a valid prefix" do
237
- doi = "https://doi.org/10.a/dryad.8515x"
236
+ it 'not a valid prefix' do
237
+ doi = 'https://doi.org/10.a/dryad.8515x'
238
238
  response = subject.get_doi_ra(doi)
239
- expect(response).to be_nil
239
+ expect(response.nil?).to be(true)
240
240
  end
241
241
 
242
- it "not found" do
243
- doi = "https://doi.org/10.99999/dryad.8515x"
242
+ it 'not found' do
243
+ doi = 'https://doi.org/10.99999/dryad.8515x'
244
244
  response = subject.get_doi_ra(doi)
245
- expect(response).to be_nil
245
+ expect(response.nil?).to be(true)
246
246
  end
247
247
  end
248
248
 
249
- context "validate doi" do
250
- it "doi" do
251
- doi = "10.5061/dryad.8515"
249
+ context 'validate doi' do
250
+ it 'doi' do
251
+ doi = '10.5061/dryad.8515'
252
252
  response = subject.validate_doi(doi)
253
- expect(response).to eq("10.5061/dryad.8515")
253
+ expect(response).to eq('10.5061/dryad.8515')
254
254
  end
255
255
  end
256
256
 
257
- context "validate funder doi" do
258
- it "funder doi" do
259
- doi = "10.13039/501100001711"
257
+ context 'validate funder doi' do
258
+ it 'funder doi' do
259
+ doi = '10.13039/501100001711'
260
260
  response = subject.validate_funder_doi(doi)
261
- expect(response).to eq("https://doi.org/10.13039/501100001711")
261
+ expect(response).to eq('https://doi.org/10.13039/501100001711')
262
262
  end
263
263
 
264
- it "funder doi without prefix" do
265
- doi = "501100001711"
264
+ it 'funder doi without prefix' do
265
+ doi = '501100001711'
266
266
  response = subject.validate_funder_doi(doi)
267
- expect(response).to eq("https://doi.org/10.13039/501100001711")
267
+ expect(response).to eq('https://doi.org/10.13039/501100001711')
268
268
  end
269
269
 
270
- it "non-funder doi" do
271
- doi = "10.5061/dryad.8515"
270
+ it 'non-funder doi' do
271
+ doi = '10.5061/dryad.8515'
272
272
  response = subject.validate_funder_doi(doi)
273
- expect(response).to be_nil
274
- end
275
-
276
- it { expect(subject.validate_funder_doi("10.13039/100000050")).to eq "https://doi.org/10.13039/100000050" }
277
- it { expect(subject.validate_funder_doi("10.13039/100006492")).to eq "https://doi.org/10.13039/100006492" }
278
- it { expect(subject.validate_funder_doi('http://handle.test.datacite.org/10.13039/100000080')).to eq "https://doi.org/10.13039/100000080" }
279
- it { expect(subject.validate_funder_doi('https://doi.org/10.13039/100000001')).to eq "https://doi.org/10.13039/100000001" }
280
- it { expect(subject.validate_funder_doi('http://doi.org/10.13039/501100001711')).to eq "https://doi.org/10.13039/501100001711" }
281
- it { expect(subject.validate_funder_doi('https://dx.doi.org/10.13039/501100001711')).to eq "https://doi.org/10.13039/501100001711" }
282
- it { expect(subject.validate_funder_doi('doi:10.13039/501100001711')).to eq "https://doi.org/10.13039/501100001711" }
283
- it { expect(subject.validate_funder_doi('10.13039/501100001711')).to eq "https://doi.org/10.13039/501100001711" }
284
- it { expect(subject.validate_funder_doi('501100001711')).to eq "https://doi.org/10.13039/501100001711" }
285
- it { expect(subject.validate_funder_doi("https://doi.org/10.13039/5monkeymonkey")).to be_nil }
286
- it { expect(subject.validate_funder_doi('10.13039/5monkeymonkey')).to be_nil }
273
+ expect(response.nil?).to be(true)
274
+ end
275
+
276
+ it { expect(subject.validate_funder_doi('10.13039/100000050')).to eq 'https://doi.org/10.13039/100000050' }
277
+ it { expect(subject.validate_funder_doi('10.13039/100006492')).to eq 'https://doi.org/10.13039/100006492' }
278
+
279
+ it {
280
+ expect(subject.validate_funder_doi('http://handle.test.datacite.org/10.13039/100000080')).to eq 'https://doi.org/10.13039/100000080'
281
+ }
282
+
283
+ it { expect(subject.validate_funder_doi('https://doi.org/10.13039/100000001')).to eq 'https://doi.org/10.13039/100000001' }
284
+ it { expect(subject.validate_funder_doi('http://doi.org/10.13039/501100001711')).to eq 'https://doi.org/10.13039/501100001711' }
285
+ it { expect(subject.validate_funder_doi('https://dx.doi.org/10.13039/501100001711')).to eq 'https://doi.org/10.13039/501100001711' }
286
+ it { expect(subject.validate_funder_doi('doi:10.13039/501100001711')).to eq 'https://doi.org/10.13039/501100001711' }
287
+ it { expect(subject.validate_funder_doi('10.13039/501100001711')).to eq 'https://doi.org/10.13039/501100001711' }
288
+ it { expect(subject.validate_funder_doi('501100001711')).to eq 'https://doi.org/10.13039/501100001711' }
289
+ it { expect(subject.validate_funder_doi('https://doi.org/10.13039/5monkeymonkey').nil?).to be(true) }
290
+ it { expect(subject.validate_funder_doi('10.13039/5monkeymonkey').nil?).to be(true) }
287
291
  end
288
292
 
289
- context "validate prefix" do
290
- it "doi" do
291
- doi = "10.5061/dryad.8515"
293
+ context 'validate prefix' do
294
+ it 'doi' do
295
+ doi = '10.5061/dryad.8515'
292
296
  response = subject.validate_prefix(doi)
293
- expect(response).to eq("10.5061")
297
+ expect(response).to eq('10.5061')
294
298
  end
295
299
 
296
- it "doi with protocol" do
297
- doi = "doi:10.5061/dryad.8515"
300
+ it 'doi with protocol' do
301
+ doi = 'doi:10.5061/dryad.8515'
298
302
  response = subject.validate_prefix(doi)
299
- expect(response).to eq("10.5061")
303
+ expect(response).to eq('10.5061')
300
304
  end
301
305
 
302
- it "doi as url" do
303
- doi = "https://doi.org/10.5061/dryad.8515"
306
+ it 'doi as url' do
307
+ doi = 'https://doi.org/10.5061/dryad.8515'
304
308
  response = subject.validate_prefix(doi)
305
- expect(response).to eq("10.5061")
309
+ expect(response).to eq('10.5061')
306
310
  end
307
311
 
308
- it "only prefix" do
309
- doi = "10.5061"
312
+ it 'only prefix' do
313
+ doi = '10.5061'
310
314
  response = subject.validate_prefix(doi)
311
- expect(response).to eq("10.5061")
315
+ expect(response).to eq('10.5061')
312
316
  end
313
317
  end
314
318
  end