bolognese 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bolognese/datacite_utils.rb +8 -9
  4. data/lib/bolognese/metadata.rb +7 -44
  5. data/lib/bolognese/metadata_utils.rb +2 -2
  6. data/lib/bolognese/readers/bibtex_reader.rb +18 -7
  7. data/lib/bolognese/readers/citeproc_reader.rb +26 -11
  8. data/lib/bolognese/readers/codemeta_reader.rb +17 -16
  9. data/lib/bolognese/readers/crossref_reader.rb +23 -15
  10. data/lib/bolognese/readers/datacite_json_reader.rb +19 -11
  11. data/lib/bolognese/readers/datacite_reader.rb +15 -15
  12. data/lib/bolognese/readers/ris_reader.rb +14 -8
  13. data/lib/bolognese/readers/schema_org_reader.rb +17 -11
  14. data/lib/bolognese/utils.rb +22 -5
  15. data/lib/bolognese/version.rb +1 -1
  16. data/lib/bolognese/writers/bibtex_writer.rb +1 -1
  17. data/lib/bolognese/writers/codemeta_writer.rb +3 -3
  18. data/lib/bolognese/writers/crosscite_writer.rb +3 -10
  19. data/lib/bolognese/writers/datacite_json_writer.rb +5 -8
  20. data/lib/bolognese/writers/jats_writer.rb +3 -3
  21. data/lib/bolognese/writers/ris_writer.rb +1 -1
  22. data/lib/bolognese/writers/schema_org_writer.rb +7 -7
  23. data/spec/datacite_utils_spec.rb +8 -7
  24. data/spec/fixtures/crosscite.json +13 -8
  25. data/spec/fixtures/datacite.json +8 -4
  26. data/spec/fixtures/datacite_software.json +0 -1
  27. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date/publication_date.yml +37 -0
  28. data/spec/readers/bibtex_reader_spec.rb +6 -10
  29. data/spec/readers/citeproc_reader_spec.rb +3 -3
  30. data/spec/readers/codemeta_reader_spec.rb +12 -16
  31. data/spec/readers/crosscite_reader_spec.rb +9 -8
  32. data/spec/readers/crossref_reader_spec.rb +27 -63
  33. data/spec/readers/datacite_json_reader_spec.rb +3 -4
  34. data/spec/readers/datacite_reader_spec.rb +156 -142
  35. data/spec/readers/ris_reader_spec.rb +6 -7
  36. data/spec/readers/schema_org_reader_spec.rb +26 -25
  37. data/spec/utils_spec.rb +8 -0
  38. data/spec/writers/bibtex_writer_spec.rb +1 -1
  39. data/spec/writers/citeproc_writer_spec.rb +1 -1
  40. data/spec/writers/crosscite_writer_spec.rb +6 -5
  41. data/spec/writers/datacite_writer_spec.rb +14 -17
  42. metadata +3 -2
@@ -20,17 +20,17 @@ describe Bolognese::Metadata, vcr: true do
20
20
  expect(subject.valid?).to be true
21
21
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
22
22
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
23
- expect(subject.type).to eq("Dataset")
24
- expect(subject.additional_type).to eq("DataPackage")
25
- expect(subject.resource_type_general).to eq("Dataset")
26
- expect(subject.ris_type).to eq("DATA")
27
- expect(subject.citeproc_type).to eq("dataset")
23
+ expect(subject.types["type"]).to eq("Dataset")
24
+ expect(subject.types["resource_type"]).to eq("DataPackage")
25
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
26
+ expect(subject.types["ris"]).to eq("DATA")
27
+ expect(subject.types["citeproc"]).to eq("dataset")
28
28
  expect(subject.creator.length).to eq(8)
29
29
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
30
30
  expect(subject.title).to eq("Data from: A new malaria agent in African hominids.")
31
31
  expect(subject.alternate_identifiers).to eq("type"=>"citation", "name"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
32
32
  expect(subject.rights).to eq("id"=>"http://creativecommons.org/publicdomain/zero/1.0")
33
- expect(subject.date_published).to eq("2011")
33
+ expect(subject.publication_year).to eq("2011")
34
34
  expect(subject.related_identifiers.length).to eq(6)
35
35
  expect(subject.related_identifiers.last).to eq("id"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
36
36
  expect(subject.publisher).to eq("Dryad Digital Repository")
@@ -43,17 +43,18 @@ describe Bolognese::Metadata, vcr: true do
43
43
  subject = Bolognese::Metadata.new(input: input)
44
44
  expect(subject.valid?).to be true
45
45
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
46
- expect(subject.type).to eq("ScholarlyArticle")
47
- expect(subject.additional_type).to eq("BlogPosting")
48
- expect(subject.resource_type_general).to eq("Text")
49
- expect(subject.ris_type).to eq("RPRT")
50
- expect(subject.citeproc_type).to eq("article-journal")
46
+ expect(subject.types["type"]).to eq("ScholarlyArticle")
47
+ expect(subject.types["resource_type"]).to eq("BlogPosting")
48
+ expect(subject.types["resource_type_general"]).to eq("Text")
49
+ expect(subject.types["ris"]).to eq("RPRT")
50
+ expect(subject.types["bibtex"]).to eq("article")
51
+ expect(subject.types["citeproc"]).to eq("article-journal")
51
52
  expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
52
53
  expect(subject.title).to eq("Eating your own Dog Food")
53
54
  expect(subject.alternate_identifiers).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
54
55
  expect(subject.description["text"]).to start_with("Eating your own dog food")
55
- expect(subject.date_published).to eq("2016-12-20")
56
- expect(subject.date_modified).to eq("2016-12-20")
56
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
57
+ expect(subject.publication_year).to eq("2016")
57
58
  expect(subject.related_identifiers.length).to eq(3)
58
59
  expect(subject.related_identifiers.last).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
59
60
  expect(subject.publisher).to eq("DataCite")
@@ -66,13 +67,14 @@ describe Bolognese::Metadata, vcr: true do
66
67
  subject = Bolognese::Metadata.new(input: input)
67
68
  expect(subject.valid?).to be true
68
69
  expect(subject.identifier).to eq("https://doi.org/10.4230/lipics.tqc.2013.93")
69
- expect(subject.type).to eq("ScholarlyArticle")
70
- expect(subject.additional_type).to eq("ConferencePaper")
71
- expect(subject.resource_type_general).to eq("Text")
70
+ expect(subject.types["type"]).to eq("ScholarlyArticle")
71
+ expect(subject.types["resource_type"]).to eq("ConferencePaper")
72
+ expect(subject.types["resource_type_general"]).to eq("Text")
72
73
  expect(subject.creator).to eq("type"=>"Person", "name"=>"Nathaniel Johnston", "givenName"=>"Nathaniel", "familyName"=>"Johnston")
73
74
  expect(subject.title).to eq("The Minimum Size of Qubit Unextendible Product Bases")
74
75
  expect(subject.description["text"]).to start_with("We investigate the problem of constructing unextendible product bases in the qubit case")
75
- expect(subject.date_published).to eq("2013")
76
+ expect(subject.dates).to eq([{"date"=>"2013-11-05", "date_type"=>"Available"}, {"date"=>"2013", "date_type"=>"Issued"}])
77
+ expect(subject.publication_year).to eq("2013")
76
78
  expect(subject.publisher).to eq("Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik GmbH, Wadern/Saarbruecken, Germany")
77
79
  expect(subject.service_provider).to eq("DataCite")
78
80
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.1")
@@ -83,13 +85,14 @@ describe Bolognese::Metadata, vcr: true do
83
85
  subject = Bolognese::Metadata.new(input: input)
84
86
  expect(subject.valid?).to be true
85
87
  expect(subject.identifier).to eq("https://doi.org/10.17630/bb43e6a3-72e0-464c-9fdd-fbe5d3e56a09")
86
- expect(subject.type).to eq("Dataset")
87
- expect(subject.additional_type).to eq("Dataset")
88
- expect(subject.resource_type_general).to eq("Audiovisual")
88
+ expect(subject.types["type"]).to eq("Dataset")
89
+ expect(subject.types["resource_type"]).to eq("Dataset")
90
+ expect(subject.types["resource_type_general"]).to eq("Audiovisual")
89
91
  expect(subject.creator.length).to eq(14)
90
92
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Haywood, Raphaelle Dawn", "givenName"=>"Raphaelle Dawn", "familyName"=>"Haywood")
91
93
  expect(subject.title).to eq("lang"=>"en", "text"=>"Data underpinning - The Sun as a planet-host star: Proxies from SDO images for HARPS radial-velocity variations")
92
- expect(subject.date_published).to eq("2016")
94
+ expect(subject.dates).to eq([{"date"=>"2016-01-20", "date_type"=>"Available"}, {"date"=>"2016", "date_type"=>"Issued"}])
95
+ expect(subject.publication_year).to eq("2016")
93
96
  expect(subject.publisher).to eq("University of St Andrews")
94
97
  expect(subject.service_provider).to eq("DataCite")
95
98
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -100,15 +103,16 @@ describe Bolognese::Metadata, vcr: true do
100
103
  subject = Bolognese::Metadata.new(input: input)
101
104
  expect(subject.valid?).to be true
102
105
  expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.48440")
103
- expect(subject.type).to eq("SoftwareSourceCode")
104
- expect(subject.resource_type_general).to eq("Software")
105
- expect(subject.ris_type).to eq("COMP")
106
- expect(subject.citeproc_type).to eq("article")
106
+ expect(subject.types["type"]).to eq("SoftwareSourceCode")
107
+ expect(subject.types["resource_type_general"]).to eq("Software")
108
+ expect(subject.types["ris"]).to eq("COMP")
109
+ expect(subject.types["citeproc"]).to eq("article")
107
110
  expect(subject.creator).to eq("type"=>"Person", "name"=>"Kristian Garza", "givenName"=>"Kristian", "familyName"=>"Garza")
108
111
  expect(subject.title).to eq("Analysis Tools For Crossover Experiment Of Ui Using Choice Architecture")
109
112
  expect(subject.description["text"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
110
113
  expect(subject.rights).to eq([{"id"=>"https://creativecommons.org/licenses/by-nc-sa/4.0", "name"=>"Creative Commons Attribution-NonCommercial-ShareAlike"}, {"name"=>"Open Access"}])
111
- expect(subject.date_published).to eq("2016-03-27")
114
+ expect(subject.dates).to eq([{"date"=>"2016-03-27", "date_type"=>"Issued"}])
115
+ expect(subject.publication_year).to eq("2016")
112
116
  expect(subject.related_identifiers.length).to eq(1)
113
117
  expect(subject.related_identifiers.last).to eq("id"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0", "related_identifier_type"=>"URL", "relation_type"=>"IsSupplementTo")
114
118
  expect(subject.publisher).to eq("Zenodo")
@@ -121,15 +125,16 @@ describe Bolognese::Metadata, vcr: true do
121
125
  subject = Bolognese::Metadata.new(input: input)
122
126
  expect(subject.valid?).to be true
123
127
  expect(subject.identifier).to eq("https://doi.org/10.6084/m9.figshare.4234751.v1")
124
- expect(subject.type).to eq("Dataset")
125
- expect(subject.additional_type).to eq("Dataset")
126
- expect(subject.resource_type_general).to eq("Dataset")
128
+ expect(subject.types["type"]).to eq("Dataset")
129
+ expect(subject.types["resource_type"]).to eq("Dataset")
130
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
127
131
  expect(subject.creator.count).to eq(11)
128
132
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0002-2410-9671", "name"=>"Alexander Junge", "givenName"=>"Alexander", "familyName"=>"Junge")
129
133
  expect(subject.title).to eq("RAIN v1")
130
134
  expect(subject.description["text"]).to start_with("<b>RAIN: RNA–protein Association and Interaction Networks")
131
135
  expect(subject.rights).to eq("id"=>"https://creativecommons.org/licenses/by/4.0", "name"=>"CC-BY")
132
- expect(subject.date_published).to eq("2016")
136
+ expect(subject.dates).to eq([{"date"=>"2016-11-16", "date_type"=>"Created"}, {"date"=>"2016-11-16", "date_type"=>"Updated"}, {"date"=>"2016", "date_type"=>"Issued"}])
137
+ expect(subject.publication_year).to eq("2016")
133
138
  expect(subject.related_identifiers.length).to eq(1)
134
139
  expect(subject.related_identifiers.last).to eq("id"=>"10.6084/m9.figshare.4234751", "related_identifier_type"=>"DOI", "relation_type"=>"IsIdenticalTo")
135
140
  expect(subject.publisher).to eq("Figshare")
@@ -142,13 +147,14 @@ describe Bolognese::Metadata, vcr: true do
142
147
  subject = Bolognese::Metadata.new(input: input)
143
148
  expect(subject.valid?).to be true
144
149
  expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.1239")
145
- expect(subject.type).to eq("Dataset")
146
- expect(subject.resource_type_general).to eq("Dataset")
150
+ expect(subject.types["type"]).to eq("Dataset")
151
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
147
152
  expect(subject.creator.length).to eq(4)
148
153
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Jahn, Najko", "givenName"=>"Najko", "familyName"=>"Jahn")
149
154
  expect(subject.title).to eq("Publication Fp7 Funding Acknowledgment - Plos Openaire")
150
155
  expect(subject.description["text"]).to start_with("The dataset contains a sample of metadata describing papers")
151
- expect(subject.date_published).to eq("2013-04-03")
156
+ expect(subject.dates).to eq([{"date"=>"2013-04-03", "date_type"=>"Issued"}])
157
+ expect(subject.publication_year).to eq("2013")
152
158
  expect(subject.publisher).to eq("Zenodo")
153
159
  expect(subject.funding_references).to eq([{"award_number"=>"246686",
154
160
  "award_title"=>"Open Access Infrastructure for Research in Europe",
@@ -163,8 +169,8 @@ describe Bolognese::Metadata, vcr: true do
163
169
  it "missing resource_type_general" do
164
170
  input = fixture_path + 'vivli.xml'
165
171
  subject = Bolognese::Metadata.new(input: input)
166
- expect(subject.type).to eq("CreativeWork")
167
- expect(subject.resource_type_general).to be_nil
172
+ expect(subject.types["type"]).to eq("CreativeWork")
173
+ expect(subject.types["resource_type_general"]).to be_nil
168
174
  expect(subject.valid?).to be false
169
175
  expect(subject.errors).to eq("2:0: ERROR: Element '{http://datacite.org/schema/kernel-4}resource': Missing child element(s). Expected is one of ( {http://datacite.org/schema/kernel-4}resourceType, {http://datacite.org/schema/kernel-4}subjects, {http://datacite.org/schema/kernel-4}contributors, {http://datacite.org/schema/kernel-4}language, {http://datacite.org/schema/kernel-4}alternateIdentifiers, {http://datacite.org/schema/kernel-4}relatedIdentifiers, {http://datacite.org/schema/kernel-4}sizes, {http://datacite.org/schema/kernel-4}formats, {http://datacite.org/schema/kernel-4}rightsList, {http://datacite.org/schema/kernel-4}descriptions ).")
170
176
  end
@@ -174,9 +180,9 @@ describe Bolognese::Metadata, vcr: true do
174
180
  subject = Bolognese::Metadata.new(input: input)
175
181
  expect(subject.valid?).to be true
176
182
  expect(subject.identifier).to eq("https://doi.org/10.6071/z7wc73")
177
- expect(subject.type).to eq("Dataset")
178
- expect(subject.additional_type).to eq("dataset")
179
- expect(subject.resource_type_general).to eq("Dataset")
183
+ expect(subject.types["type"]).to eq("Dataset")
184
+ expect(subject.types["resource_type"]).to eq("dataset")
185
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
180
186
  expect(subject.creator.length).to eq(6)
181
187
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
182
188
  end
@@ -192,7 +198,7 @@ describe Bolognese::Metadata, vcr: true do
192
198
  expect(subject.creator.first).to eq("familyName"=>"Schumann", "givenName"=>"Kai", "name"=>"Kai Schumann", "type"=>"Person")
193
199
  expect(subject.title).to eq("Gridded results of swath bathymetric mapping of Disko Bay, Western Greenland, 2007-2008")
194
200
  expect(subject.publisher).to eq("PANGAEA - Data Publisher for Earth & Environmental Science")
195
- expect(subject.publication_year).to eq(2011)
201
+ expect(subject.publication_year).to eq("2011")
196
202
  expect(subject.related_identifiers).to eq([{"id"=>"10.5072/timeseries", "related_identifier_type"=>"DOI", "relation_type"=>"Continues"}])
197
203
  expect(subject.geo_location).to eq([{"geo_location_place"=>"Disko Bay", "geo_location_point"=>{"point_latitude"=>"69.000000", "point_longitude"=>"-52.000000"}}])
198
204
  end
@@ -208,7 +214,8 @@ describe Bolognese::Metadata, vcr: true do
208
214
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
209
215
  expect(subject.title).to eq("Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek\n meteorological data, soil moisture and temperature, snow depth and air\n temperature")
210
216
  expect(subject.publisher).to eq("UC Merced")
211
- expect(subject.publication_year).to eq(2013)
217
+ expect(subject.dates).to eq([{"date"=>"2014-10-17", "date_type"=>"Updated"}, {"date"=>"2016-03-14T17:02:02Z", "date_type"=>"Available"}, {"date"=>"2013", "date_type"=>"Issued"}])
218
+ expect(subject.publication_year).to eq("2013")
212
219
  expect(subject.geo_location).to eq([{"geo_location_box"=>
213
220
  {"east_bound_longitude"=>"-119.182",
214
221
  "north_bound_latitude"=>"37.075",
@@ -224,7 +231,7 @@ describe Bolognese::Metadata, vcr: true do
224
231
  subject = Bolognese::Metadata.new(input: input)
225
232
  expect(subject.valid?).to be true
226
233
  expect(subject.identifier).to eq("https://doi.org/10.14457/kmitl.res.2006.17")
227
- expect(subject.type).to eq("Dataset")
234
+ expect(subject.types["type"]).to eq("Dataset")
228
235
  expect(subject.creator.length).to eq(1)
229
236
  expect(subject.creator.first).to eq(["name", "กัญจนา แซ่เตียว"])
230
237
  end
@@ -234,7 +241,7 @@ describe Bolognese::Metadata, vcr: true do
234
241
  subject = Bolognese::Metadata.new(input: input)
235
242
  expect(subject.valid?).to be true
236
243
  expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/eqtqyo")
237
- expect(subject.type).to eq("Dataset")
244
+ expect(subject.types["type"]).to eq("Dataset")
238
245
  expect(subject.creator).to eq("name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)")
239
246
  end
240
247
 
@@ -243,7 +250,7 @@ describe Bolognese::Metadata, vcr: true do
243
250
  subject = Bolognese::Metadata.new(input: input)
244
251
  expect(subject.valid?).to be true
245
252
  expect(subject.identifier).to eq("https://doi.org/10.18429/jacow-ipac2016-tupmy003")
246
- expect(subject.type).to eq("ScholarlyArticle")
253
+ expect(subject.types["type"]).to eq("ScholarlyArticle")
247
254
  expect(subject.creator.length).to eq(12)
248
255
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"http://jacow.org/JACoW-00077389", "name"=>"Masashi Otani", "givenName"=>"Masashi", "familyName"=>"Otani")
249
256
  end
@@ -253,7 +260,7 @@ describe Bolognese::Metadata, vcr: true do
253
260
  subject = Bolognese::Metadata.new(input: input)
254
261
  expect(subject.valid?).to be true
255
262
  expect(subject.identifier).to eq("https://doi.org/10.2314/coscv1")
256
- expect(subject.type).to eq("ScholarlyArticle")
263
+ expect(subject.types["type"]).to eq("ScholarlyArticle")
257
264
  expect(subject.creator.length).to eq(14)
258
265
  expect(subject.creator.first).to include("type"=>"Person", "name"=>"Lambert Heller", "givenName"=>"Lambert", "familyName"=>"Heller")
259
266
  end
@@ -271,14 +278,14 @@ describe Bolognese::Metadata, vcr: true do
271
278
  subject = Bolognese::Metadata.new(input: input)
272
279
  expect(subject.valid?).to be true
273
280
  expect(subject.identifier).to eq("https://doi.org/10.15125/bath-00114")
274
- expect(subject.type).to eq("Dataset")
275
- expect(subject.additional_type).to eq("Dataset")
276
- expect(subject.resource_type_general).to eq("Dataset")
281
+ expect(subject.types["type"]).to eq("Dataset")
282
+ expect(subject.types["resource_type"]).to eq("Dataset")
283
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
277
284
  expect(subject.creator.length).to eq(2)
278
285
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-8740-8284", "name"=>"Bimbo, Nuno", "givenName"=>"Nuno", "familyName"=>"Bimbo")
279
286
  expect(subject.title).to eq("Dataset for \"Direct Evidence for Solid-Like Hydrogen in a Nanoporous Carbon Hydrogen Storage Material at Supercritical Temperatures\"")
280
287
  expect(subject.description.first["text"]).to start_with("Dataset for Direct Evidence for Solid-Like Hydrogen")
281
- expect(subject.date_published).to eq("2015")
288
+ expect(subject.publication_year).to eq("2015")
282
289
  expect(subject.publisher).to eq("University of Bath")
283
290
  expect(subject.funding_references.length).to eq(5)
284
291
  expect(subject.funding_references.first).to eq("award_number" => "EP/J016454/1",
@@ -296,16 +303,16 @@ describe Bolognese::Metadata, vcr: true do
296
303
  subject = Bolognese::Metadata.new(input: input)
297
304
  expect(subject.valid?).to be true
298
305
  expect(subject.identifier).to eq("https://doi.org/10.5438/6423")
299
- expect(subject.type).to eq("Collection")
300
- expect(subject.additional_type).to eq("Project")
301
- expect(subject.resource_type_general).to eq("Collection")
302
- expect(subject.ris_type).to eq("GEN")
303
- expect(subject.citeproc_type).to eq("article")
306
+ expect(subject.types["type"]).to eq("Collection")
307
+ expect(subject.types["resource_type"]).to eq("Project")
308
+ expect(subject.types["resource_type_general"]).to eq("Collection")
309
+ expect(subject.types["ris"]).to eq("GEN")
310
+ expect(subject.types["citeproc"]).to eq("article")
304
311
  expect(subject.creator.length).to eq(24)
305
312
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-5331-6592", "name"=>"Farquhar, Adam", "givenName"=>"Adam", "familyName"=>"Farquhar")
306
313
  expect(subject.title).to eq("Technical and Human Infrastructure for Open Research (THOR)")
307
314
  expect(subject.description["text"]).to start_with("Five years ago, a global infrastructure")
308
- expect(subject.date_published).to eq("2015")
315
+ expect(subject.publication_year).to eq("2015")
309
316
  expect(subject.publisher).to eq("DataCite")
310
317
  expect(subject.funding_references).to eq([{"award_number"=>"654039",
311
318
  "award_title"=>"THOR – Technical and Human Infrastructure for Open Research",
@@ -322,16 +329,16 @@ describe Bolognese::Metadata, vcr: true do
322
329
  subject = Bolognese::Metadata.new(input: input)
323
330
  expect(subject.valid?).to be true
324
331
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
325
- expect(subject.type).to eq("ScholarlyArticle")
326
- expect(subject.additional_type).to eq("BlogPosting")
327
- expect(subject.resource_type_general).to eq("Text")
328
- expect(subject.ris_type).to eq("RPRT")
329
- expect(subject.citeproc_type).to eq("article-journal")
332
+ expect(subject.types["type"]).to eq("ScholarlyArticle")
333
+ expect(subject.types["resource_type"]).to eq("BlogPosting")
334
+ expect(subject.types["resource_type_general"]).to eq("Text")
335
+ expect(subject.types["ris"]).to eq("RPRT")
336
+ expect(subject.types["citeproc"]).to eq("article-journal")
330
337
  expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
331
338
  expect(subject.title).to eq("Eating your own Dog Food")
332
339
  expect(subject.alternate_identifiers).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
333
- expect(subject.date_published).to eq("2016-12-20")
334
- expect(subject.publication_year).to eq(2016)
340
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
341
+ expect(subject.publication_year).to eq("2016")
335
342
  expect(subject.related_identifiers.length).to eq(3)
336
343
  expect(subject.related_identifiers.last).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
337
344
  expect(subject.service_provider).to eq("DataCite")
@@ -342,16 +349,16 @@ describe Bolognese::Metadata, vcr: true do
342
349
  subject = Bolognese::Metadata.new(input: input)
343
350
  expect(subject.valid?).to be true
344
351
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
345
- expect(subject.type).to eq("Book")
346
- expect(subject.additional_type).to eq("Monograph")
347
- expect(subject.resource_type_general).to eq("Text")
348
- expect(subject.ris_type).to eq("BOOK")
349
- expect(subject.citeproc_type).to eq("book")
352
+ expect(subject.types["type"]).to eq("Book")
353
+ expect(subject.types["resource_type"]).to eq("Monograph")
354
+ expect(subject.types["resource_type_general"]).to eq("Text")
355
+ expect(subject.types["ris"]).to eq("BOOK")
356
+ expect(subject.types["citeproc"]).to eq("book")
350
357
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
351
358
  expect(subject.title).to eq(["Właściwości rzutowań podprzestrzeniowych", {"title_type"=>"TranslatedTitle", "text"=>"Translation of Polish titles"}])
352
359
  expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
353
- expect(subject.date_published).to eq("2010")
354
- expect(subject.publication_year).to eq(2010)
360
+ expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
361
+ expect(subject.publication_year).to eq("2010")
355
362
  expect(subject.related_identifiers.length).to eq(1)
356
363
  expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
357
364
  expect(subject.rights).to eq("id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic")
@@ -365,16 +372,15 @@ describe Bolognese::Metadata, vcr: true do
365
372
  subject = Bolognese::Metadata.new(input: input)
366
373
  expect(subject.valid?).to be true
367
374
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
368
- expect(subject.type).to eq("Book")
369
- expect(subject.additional_type).to eq("Monograph")
370
- expect(subject.resource_type_general).to eq("Text")
371
- expect(subject.ris_type).to eq("BOOK")
372
- expect(subject.citeproc_type).to eq("book")
375
+ expect(subject.types["type"]).to eq("Book")
376
+ expect(subject.types["resource_type"]).to eq("Monograph")
377
+ expect(subject.types["resource_type_general"]).to eq("Text")
378
+ expect(subject.types["ris"]).to eq("BOOK")
379
+ expect(subject.types["citeproc"]).to eq("book")
373
380
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
374
381
  expect(subject.title).to eq(["Właściwości rzutowań podprzestrzeniowych", {"title_type"=>"TranslatedTitle", "text"=>"Translation of Polish titles"}])
375
382
  expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
376
- expect(subject.date_published).to eq("2010")
377
- expect(subject.publication_year).to eq(2010)
383
+ expect(subject.publication_year).to eq("2010")
378
384
  expect(subject.related_identifiers.length).to eq(1)
379
385
  expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
380
386
  expect(subject.rights).to eq("id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic")
@@ -388,16 +394,15 @@ describe Bolognese::Metadata, vcr: true do
388
394
  subject = Bolognese::Metadata.new(input: input)
389
395
  expect(subject.valid?).to be true
390
396
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
391
- expect(subject.type).to eq("Book")
392
- expect(subject.additional_type).to eq("Monograph")
393
- expect(subject.resource_type_general).to eq("Text")
394
- expect(subject.ris_type).to eq("BOOK")
395
- expect(subject.citeproc_type).to eq("book")
397
+ expect(subject.types["type"]).to eq("Book")
398
+ expect(subject.types["resource_type"]).to eq("Monograph")
399
+ expect(subject.types["resource_type_general"]).to eq("Text")
400
+ expect(subject.types["ris"]).to eq("BOOK")
401
+ expect(subject.types["citeproc"]).to eq("book")
396
402
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
397
403
  expect(subject.title).to eq(["Właściwości rzutowań podprzestrzeniowych", {"title_type"=>"TranslatedTitle", "text"=>"Translation of Polish titles"}])
398
404
  expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
399
- expect(subject.date_published).to eq("2010")
400
- expect(subject.publication_year).to eq(2010)
405
+ expect(subject.publication_year).to eq("2010")
401
406
  expect(subject.related_identifiers.length).to eq(1)
402
407
  expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
403
408
  expect(subject.rights).to eq("id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic")
@@ -411,16 +416,16 @@ describe Bolognese::Metadata, vcr: true do
411
416
  subject = Bolognese::Metadata.new(input: input)
412
417
  expect(subject.valid?).to be true
413
418
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
414
- expect(subject.type).to eq("Book")
415
- expect(subject.additional_type).to eq("Monograph")
416
- expect(subject.resource_type_general).to eq("Text")
417
- expect(subject.ris_type).to eq("BOOK")
418
- expect(subject.citeproc_type).to eq("book")
419
+ expect(subject.types["type"]).to eq("Book")
420
+ expect(subject.types["resource_type"]).to eq("Monograph")
421
+ expect(subject.types["resource_type_general"]).to eq("Text")
422
+ expect(subject.types["ris"]).to eq("BOOK")
423
+ expect(subject.types["citeproc"]).to eq("book")
419
424
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
420
425
  expect(subject.title).to eq(["Właściwości rzutowań podprzestrzeniowych", {"title_type"=>"TranslatedTitle", "text"=>"Translation of Polish titles"}])
421
426
  expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
422
- expect(subject.date_published).to eq("2010")
423
- expect(subject.publication_year).to eq(2010)
427
+ expect(subject.dates).to eq([{"date"=>"2009-04-29", "date_type"=>"StartDate"}, {"date"=>"2010-01-05", "date_type"=>"EndDate"}, {"date"=>"2010", "date_type"=>"Issued"}])
428
+ expect(subject.publication_year).to eq("2010")
424
429
  expect(subject.related_identifiers.length).to eq(1)
425
430
  expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
426
431
  expect(subject.publisher).to eq("Springer")
@@ -433,17 +438,18 @@ describe Bolognese::Metadata, vcr: true do
433
438
  subject = Bolognese::Metadata.new(input: input, doi: "10.5072/testpub2", content_url: "https://example.org/report.pdf")
434
439
  expect(subject.valid?).to be true
435
440
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub2")
436
- expect(subject.type).to eq("Book")
437
- expect(subject.additional_type).to eq("Monograph")
438
- expect(subject.resource_type_general).to eq("Text")
441
+ expect(subject.types["type"]).to eq("Book")
442
+ expect(subject.types["resource_type"]).to eq("Monograph")
443
+ expect(subject.types["resource_type_general"]).to eq("Text")
439
444
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
440
445
  expect(subject.title).to eq(["Właściwości rzutowań podprzestrzeniowych", {"title_type"=>"TranslatedTitle", "text"=>"Translation of Polish titles"}])
441
446
  expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
442
- expect(subject.date_published).to eq("2010")
447
+ expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
448
+ expect(subject.publication_year).to eq("2010")
443
449
  expect(subject.size).to eq("256 pages")
444
450
  expect(subject.formats).to eq("pdf")
445
451
  expect(subject.content_url).to eq("https://example.org/report.pdf")
446
- expect(subject.publication_year).to eq(2010)
452
+ expect(subject.publication_year).to eq("2010")
447
453
  expect(subject.related_identifiers.length).to eq(1)
448
454
  expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
449
455
  expect(subject.rights).to eq("id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic")
@@ -456,14 +462,14 @@ describe Bolognese::Metadata, vcr: true do
456
462
  subject = Bolognese::Metadata.new(input: input)
457
463
  expect(subject.valid?).to be true
458
464
  expect(subject.identifier).to eq("https://doi.org/10.4231/d38g8fk8b")
459
- expect(subject.type).to eq("SoftwareSourceCode")
460
- expect(subject.additional_type).to eq("Simulation Tool")
461
- expect(subject.resource_type_general).to eq("Software")
465
+ expect(subject.types["type"]).to eq("SoftwareSourceCode")
466
+ expect(subject.types["resource_type"]).to eq("Simulation Tool")
467
+ expect(subject.types["resource_type_general"]).to eq("Software")
462
468
  expect(subject.creator.length).to eq(5)
463
469
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Carlos PatiñO", "givenName"=>"Carlos", "familyName"=>"PatiñO")
464
470
  expect(subject.title).to eq("LAMMPS Data-File Generator")
465
- expect(subject.date_published).to eq("2018")
466
- expect(subject.publication_year).to eq(2018)
471
+ expect(subject.dates).to eq([{"date"=>"2018-07-18", "date_type"=>"Valid"}, {"date"=>"2018-07-18", "date_type"=>"Accepted"}, {"date"=>"2018", "date_type"=>"Issued"}])
472
+ expect(subject.publication_year).to eq("2018")
467
473
  expect(subject.publisher).to eq("nanoHUB")
468
474
  expect(subject.service_provider).to eq("DataCite")
469
475
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
@@ -474,11 +480,11 @@ describe Bolognese::Metadata, vcr: true do
474
480
  subject = Bolognese::Metadata.new(input: input)
475
481
  expect(subject.valid?).to be true
476
482
  expect(subject.identifier).to eq("https://doi.org/10.5067/terra+aqua/ceres/cldtyphist_l3.004")
477
- expect(subject.type).to eq("Dataset")
478
- expect(subject.resource_type_general).to eq("Dataset")
483
+ expect(subject.types["type"]).to eq("Dataset")
484
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
479
485
  expect(subject.creator).to eq("type"=>"Person", "name"=>"Takmeng Wong", "givenName"=>"Takmeng", "familyName"=>"Wong")
480
486
  expect(subject.title).to eq("CERES Level 3 Cloud Type Historgram Terra+Aqua HDF file - Edition4")
481
- expect(subject.date_published).to eq("2016")
487
+ expect(subject.publication_year).to eq("2016")
482
488
  expect(subject.publisher).to eq("NASA Langley Atmospheric Science Data Center DAAC")
483
489
  expect(subject.service_provider).to eq("DataCite")
484
490
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -489,12 +495,13 @@ describe Bolognese::Metadata, vcr: true do
489
495
  subject = Bolognese::Metadata.new(input: input)
490
496
  expect(subject.valid?).to be true
491
497
  expect(subject.identifier).to eq("https://doi.org/10.4232/1.2745")
492
- expect(subject.type).to eq("Dataset")
493
- expect(subject.resource_type_general).to eq("Dataset")
498
+ expect(subject.types["type"]).to eq("Dataset")
499
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
494
500
  expect(subject.creator).to eq("type"=>"Organization", "name"=>"Europäische Kommission")
495
501
  expect(subject.title).to eq([{"lang"=>"de", "text"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"lang"=>"en", "text"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"title_type"=>"Subtitle","lang"=>"de", "text"=>"The Common European Currency"}, {"title_type"=>"Subtitle", "lang"=>"en", "text"=>"The Common European Currency"}])
496
502
  expect(subject.keywords).to eq([{"subject_scheme"=>"ZA", "text"=>"KAT12 International Institutions, Relations, Conditions"}])
497
- expect(subject.date_published).to eq("1996")
503
+ expect(subject.dates).to eq([{"date"=>"1995-12", "date_type"=>"Collected"}, {"date"=>"1996", "date_type"=>"Issued"}])
504
+ expect(subject.publication_year).to eq("1996")
498
505
  expect(subject.publisher).to eq("GESIS Data Archive")
499
506
  expect(subject.service_provider).to eq("DataCite")
500
507
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -505,13 +512,14 @@ describe Bolognese::Metadata, vcr: true do
505
512
  subject = Bolognese::Metadata.new(input: input)
506
513
  expect(subject.valid?).to be true
507
514
  expect(subject.identifier).to eq("https://doi.org/10.4229/23rdeupvsec2008-5co.8.3")
508
- expect(subject.type).to eq("ScholarlyArticle")
509
- expect(subject.additional_type).to eq("Article")
510
- expect(subject.resource_type_general).to eq("Text")
515
+ expect(subject.types["type"]).to eq("ScholarlyArticle")
516
+ expect(subject.types["resource_type"]).to eq("Article")
517
+ expect(subject.types["resource_type_general"]).to eq("Text")
511
518
  expect(subject.creator.length).to eq(3)
512
519
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"P. Llamas", "givenName"=>"P.", "familyName"=>"Llamas")
513
520
  expect(subject.title).to eq("Rural Electrification With Hybrid Power Systems Based on Renewables - Technical System Configurations From the Point of View of the European Industry")
514
- expect(subject.date_published).to eq("2008")
521
+ expect(subject.dates).to eq([{"date"=>"2008-11-01", "date_type"=>"Valid"}, {"date"=>"2008", "date_type"=>"Issued"}])
522
+ expect(subject.publication_year).to eq("2008")
515
523
  expect(subject.periodical).to eq("title"=>"23rd European Photovoltaic Solar Energy Conference and Exhibition, 1-5 September 2008, Valencia, Spain; 3353-3356", "type"=>"Periodical")
516
524
  expect(subject.description["text"]).to start_with("Aim of this paper is the presentation")
517
525
  expect(subject.publisher).to eq("WIP-Munich")
@@ -534,12 +542,13 @@ describe Bolognese::Metadata, vcr: true do
534
542
  subject = Bolognese::Metadata.new(input: input)
535
543
  expect(subject.valid?).to be true
536
544
  expect(subject.identifier).to eq("https://doi.org/10.18169/papdeottx00502")
537
- expect(subject.type).to eq("Dataset")
538
- expect(subject.additional_type).to eq("Disclosure")
539
- expect(subject.resource_type_general).to eq("Dataset")
545
+ expect(subject.types["type"]).to eq("Dataset")
546
+ expect(subject.types["resource_type"]).to eq("Disclosure")
547
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
540
548
  expect(subject.creator).to eq("name"=>"Anonymous")
541
549
  expect(subject.title).to eq( "Messung der Bildunschaerfe in H.264-codierten Bildern und Videosequenzen")
542
- expect(subject.date_published).to eq("2017")
550
+ expect(subject.dates).to eq([{"date"=>"07.04.2017", "date_type"=>"Available"}, {"date"=>"2017", "date_type"=>"Issued"}])
551
+ expect(subject.publication_year).to eq("2017")
543
552
  expect(subject.publisher).to eq("Siemens AG")
544
553
  expect(subject.service_provider).to eq("DataCite")
545
554
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -550,9 +559,9 @@ describe Bolognese::Metadata, vcr: true do
550
559
  subject = Bolognese::Metadata.new(input: input)
551
560
  expect(subject.valid?).to be true
552
561
  expect(subject.identifier).to eq("https://doi.org/10.21944/temis-ozone-msr2")
553
- expect(subject.type).to eq("Dataset")
554
- expect(subject.additional_type).to eq("Satellite data")
555
- expect(subject.resource_type_general).to eq("Dataset")
562
+ expect(subject.types["type"]).to eq("Dataset")
563
+ expect(subject.types["resource_type"]).to eq("Satellite data")
564
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
556
565
  expect(subject.creator).to eq([{"type"=>"Person",
557
566
  "id"=>"https://orcid.org/0000-0002-0077-5338",
558
567
  "name"=>"Ronald Van Der A",
@@ -569,7 +578,8 @@ describe Bolognese::Metadata, vcr: true do
569
578
  "familyName"=>"Eskes"}])
570
579
  expect(subject.title).to eq("Multi-Sensor Reanalysis (MSR) of total ozone, version 2")
571
580
  expect(subject.version).to eq("2")
572
- expect(subject.date_published).to eq("2015")
581
+ expect(subject.dates).to eq([{"date"=>"2014-04-25", "date_type"=>"Available"}, {"date"=>"1970-04-01 / (:tba)", "date_type"=>"Collected"}, {"date"=>"2015", "date_type"=>"Issued"}])
582
+ expect(subject.publication_year).to eq("2015")
573
583
  expect(subject.publisher).to eq("Royal Netherlands Meteorological Institute (KNMI)")
574
584
  expect(subject.service_provider).to eq("DataCite")
575
585
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -590,12 +600,12 @@ describe Bolognese::Metadata, vcr: true do
590
600
  subject = Bolognese::Metadata.new(input: input, sandbox: true)
591
601
  expect(subject.valid?).to be true
592
602
  expect(subject.identifier).to eq("https://handle.test.datacite.org/10.22002/d1.694")
593
- expect(subject.type).to eq("Dataset")
594
- expect(subject.resource_type_general).to eq("Dataset")
603
+ expect(subject.types["type"]).to eq("Dataset")
604
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
595
605
  expect(subject.creator).to eq("name"=>"Tester")
596
606
  expect(subject.title).to eq("Test license")
597
- expect(subject.date_published).to eq("2018-01-12")
598
- expect(subject.publication_year).to eq(2018)
607
+ expect(subject.dates).to eq([{"date"=>"2018-01-12", "date_type"=>"Issued"}])
608
+ expect(subject.publication_year).to eq("2018")
599
609
  expect(subject.publisher).to eq("CaltechDATA")
600
610
  expect(subject.service_provider).to eq("DataCite")
601
611
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -607,14 +617,14 @@ describe Bolognese::Metadata, vcr: true do
607
617
  subject = Bolognese::Metadata.new(input: input, sandbox: true)
608
618
  expect(subject.valid?).to be true
609
619
  expect(subject.identifier).to eq("https://handle.test.datacite.org/10.21956/gatesopenres.530.r190")
610
- expect(subject.type).to eq("ScholarlyArticle")
611
- expect(subject.resource_type_general).to eq("Text")
612
- expect(subject.ris_type).to eq("RPRT")
613
- expect(subject.citeproc_type).to eq("article-journal")
620
+ expect(subject.types["type"]).to eq("ScholarlyArticle")
621
+ expect(subject.types["resource_type_general"]).to eq("Text")
622
+ expect(subject.types["ris"]).to eq("RPRT")
623
+ expect(subject.types["citeproc"]).to eq("article-journal")
614
624
  expect(subject.creator.length).to eq(5)
615
625
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Lina Patel", "givenName"=>"Lina", "familyName"=>"Patel")
616
626
  expect(subject.title).to eq("Referee report. For: Gates - add article keywords to the metatags [version 2; referees: 1 approved]")
617
- expect(subject.date_published).to eq("2018")
627
+ expect(subject.publication_year).to eq("2018")
618
628
  expect(subject.publisher).to eq("Gates Open Research")
619
629
  expect(subject.service_provider).to eq("DataCite")
620
630
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -649,14 +659,17 @@ describe Bolognese::Metadata, vcr: true do
649
659
  subject = Bolognese::Metadata.new(input: input)
650
660
  expect(subject.valid?).to be true
651
661
  expect(subject.identifier).to eq("https://doi.org/10.3204/desy-2014-01645")
652
- expect(subject.resource_type_general).to eq("Text")
653
- expect(subject.additional_type).to eq("Dissertation")
654
- expect(subject.type).to eq("Thesis")
655
- expect(subject.bibtex_type).to eq("phdthesis")
656
- expect(subject.citeproc_type).to eq("thesis")
662
+ expect(subject.types["resource_type_general"]).to eq("Text")
663
+ expect(subject.types["resource_type"]).to eq("Dissertation")
664
+ expect(subject.types["type"]).to eq("Thesis")
665
+ expect(subject.types["bibtex"]).to eq("phdthesis")
666
+ expect(subject.types["citeproc"]).to eq("thesis")
657
667
  expect(subject.creator).to eq("type"=>"Person", "name"=>"Heiko Conrad", "givenName"=>"Heiko", "familyName"=>"Conrad")
658
668
  expect(subject.title).to eq("Dynamics of colloids in molecular glass forming liquids studied via X-ray photon correlation spectroscopy")
659
- expect(subject.date_published).to eq("2014")
669
+ expect(subject.dates).to eq([{"date"=>"2014", "date_type"=>"Issued"},
670
+ {"date"=>"2014", "date_type"=>"Copyrighted"},
671
+ {"date"=>"2009-10-01/2014-01-23", "date_type"=>"Created"}])
672
+ expect(subject.publication_year).to eq("2014")
660
673
  expect(subject.publisher).to eq("Deutsches Elektronen-Synchrotron, DESY, Hamburg")
661
674
  expect(subject.service_provider).to eq("DataCite")
662
675
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -667,11 +680,11 @@ describe Bolognese::Metadata, vcr: true do
667
680
  subject = Bolognese::Metadata.new(input: input)
668
681
  expect(subject.valid?).to be true
669
682
  expect(subject.identifier).to eq("https://doi.org/10.4121/uuid:3926db30-f712-4394-aebc-75976070e91f")
670
- expect(subject.type).to eq("Dataset")
671
- expect(subject.resource_type_general).to eq("Dataset")
683
+ expect(subject.types["type"]).to eq("Dataset")
684
+ expect(subject.types["resource_type_general"]).to eq("Dataset")
672
685
  expect(subject.title).to eq("BPI Challenge 2012")
673
- expect(subject.date_published).to eq("2012")
674
- expect(subject.publication_year).to eq(2012)
686
+ expect(subject.dates).to eq([{"date"=>"2011-10-01/2012-03-14", "date_type"=>"Other"}, {"date"=>"2012", "date_type"=>"Issued"}])
687
+ expect(subject.publication_year).to eq("2012")
675
688
  expect(subject.state).to eq("findable")
676
689
  end
677
690
  end
@@ -683,7 +696,7 @@ describe Bolognese::Metadata, vcr: true do
683
696
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
684
697
  expect(subject.doi).to eq("10.5061/dryad.8515")
685
698
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
686
- expect(subject.type).to eq("Dataset")
699
+ expect(subject.types["type"]).to eq("Dataset")
687
700
  expect(subject.title).to eq("A new malaria agent in African hominids.")
688
701
  end
689
702
 
@@ -693,7 +706,7 @@ describe Bolognese::Metadata, vcr: true do
693
706
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
694
707
  expect(subject.doi).to eq("10.5061/dryad.8515")
695
708
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
696
- expect(subject.type).to eq("Dataset")
709
+ expect(subject.types["type"]).to eq("Dataset")
697
710
  expect(subject.title).to eq("Data from: A new malaria agent in African hominids.")
698
711
  expect(subject.state).to eq("registered")
699
712
  end
@@ -710,7 +723,7 @@ describe Bolognese::Metadata, vcr: true do
710
723
  expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
711
724
  expect(subject.title).to eq("Eating your own Dog Food")
712
725
  expect(subject.publisher).to eq("DataCite")
713
- expect(subject.publication_year).to eq(2016)
726
+ expect(subject.publication_year).to eq("2016")
714
727
  end
715
728
  end
716
729
 
@@ -724,12 +737,13 @@ describe Bolognese::Metadata, vcr: true do
724
737
  expect(subject.identifier).to eq("https://doi.org/10.25491/9hx8-ke93")
725
738
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.25491/9hx8-ke93")
726
739
  expect(subject.content_url).to eq("https://storage.googleapis.com/gtex_analysis_v7/single_tissue_eqtl_data/GTEx_Analysis_v7_eQTL_expression_matrices.tar.gz")
727
- expect(subject.type).to eq("Dataset")
728
- expect(subject.additional_type).to eq("DroNc-seq data")
740
+ expect(subject.types["type"]).to eq("Dataset")
741
+ expect(subject.types["resource_type"]).to eq("DroNc-seq data")
729
742
  expect(subject.creator).to eq("name"=>"The GTEx Consortium", "type"=>"Organization")
730
743
  expect(subject.title).to eq("DroNc-seq data")
731
744
  expect(subject.keywords).to eq(["gtex", "annotation", "phenotype", "gene regulation", "transcriptomics"])
732
- expect(subject.date_published).to eq("2017")
745
+ expect(subject.dates).to eq([{"date"=>"2017", "date_type"=>"Issued"}])
746
+ expect(subject.publication_year).to eq("2017")
733
747
  expect(subject.related_identifiers.length).to eq(4)
734
748
  expect(subject.related_identifiers.last).to eq("id"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "related_identifier_type"=>"URL", "relation_type"=>"IsPartOf")
735
749
  expect(subject.formats).to eq("application/tar")