bolognese 1.0.6 → 1.0.7

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bolognese/author_utils.rb +1 -1
  4. data/lib/bolognese/datacite_utils.rb +51 -55
  5. data/lib/bolognese/metadata.rb +16 -16
  6. data/lib/bolognese/metadata_utils.rb +5 -5
  7. data/lib/bolognese/readers/bibtex_reader.rb +4 -4
  8. data/lib/bolognese/readers/citeproc_reader.rb +9 -6
  9. data/lib/bolognese/readers/codemeta_reader.rb +7 -4
  10. data/lib/bolognese/readers/crossref_reader.rb +23 -17
  11. data/lib/bolognese/readers/datacite_json_reader.rb +21 -19
  12. data/lib/bolognese/readers/datacite_reader.rb +30 -66
  13. data/lib/bolognese/readers/ris_reader.rb +6 -3
  14. data/lib/bolognese/readers/schema_org_reader.rb +12 -9
  15. data/lib/bolognese/utils.rb +15 -14
  16. data/lib/bolognese/version.rb +1 -1
  17. data/lib/bolognese/writers/bibtex_writer.rb +2 -2
  18. data/lib/bolognese/writers/codemeta_writer.rb +3 -3
  19. data/lib/bolognese/writers/crosscite_writer.rb +6 -6
  20. data/lib/bolognese/writers/datacite_json_writer.rb +9 -9
  21. data/lib/bolognese/writers/jats_writer.rb +4 -4
  22. data/lib/bolognese/writers/ris_writer.rb +4 -4
  23. data/lib/bolognese/writers/schema_org_writer.rb +6 -6
  24. data/spec/author_utils_spec.rb +1 -1
  25. data/spec/datacite_utils_spec.rb +2 -2
  26. data/spec/fixtures/crosscite.json +26 -16
  27. data/spec/fixtures/datacite.json +20 -14
  28. data/spec/fixtures/datacite_software.json +10 -6
  29. data/spec/readers/bibtex_reader_spec.rb +6 -6
  30. data/spec/readers/citeproc_reader_spec.rb +3 -3
  31. data/spec/readers/codemeta_reader_spec.rb +14 -14
  32. data/spec/readers/crosscite_reader_spec.rb +8 -9
  33. data/spec/readers/crossref_reader_spec.rb +31 -28
  34. data/spec/readers/datacite_json_reader_spec.rb +20 -6
  35. data/spec/readers/datacite_reader_spec.rb +94 -93
  36. data/spec/readers/ris_reader_spec.rb +5 -5
  37. data/spec/readers/schema_org_reader_spec.rb +41 -34
  38. data/spec/utils_spec.rb +3 -3
  39. data/spec/writers/bibtex_writer_spec.rb +1 -1
  40. data/spec/writers/citeproc_writer_spec.rb +1 -1
  41. data/spec/writers/codemeta_writer_spec.rb +15 -15
  42. data/spec/writers/crosscite_writer_spec.rb +16 -16
  43. data/spec/writers/datacite_json_writer_spec.rb +17 -17
  44. data/spec/writers/datacite_writer_spec.rb +26 -26
  45. data/spec/writers/ris_writer_spec.rb +2 -1
  46. metadata +2 -2
@@ -17,18 +17,32 @@ describe Bolognese::Metadata, vcr: true do
17
17
  it "BlogPosting" do
18
18
  expect(subject.valid?).to be true
19
19
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
20
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article", "ris"=>"GEN", "type"=>"CreativeWork")
21
- expect(subject.creator).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
22
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
23
- expect(subject.alternate_identifiers).to eq([{"alternate-identifier"=>"MS-49-3632-5083", "alternate-identifier-type"=>"Local accession number"}])
20
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"BlogPosting", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"ScholarlyArticle")
21
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
22
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
23
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"MS-49-3632-5083", "alternate_identifier_type"=>"Local accession number"}])
24
24
  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"}])
25
25
  expect(subject.publication_year).to eq("2016")
26
26
  expect(subject.related_identifiers.length).to eq(3)
27
- expect(subject.related_identifiers.first).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
28
- expect(subject.related_identifiers.last).to eq("id"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
27
+ expect(subject.related_identifiers.first).to eq("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
28
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
29
29
  expect(subject.service_provider).to eq("DataCite")
30
30
  end
31
31
 
32
+ # it "SoftwareSourceCode" do
33
+ # input = fixture_path + "datacite_software.json"
34
+ # subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
35
+ # expect(subject.valid?).to be true
36
+ # expect(subject.identifier).to eq("https://doi.org/10.5063/f1m61h5x")
37
+ # expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article", "resource_type"=>"Software", "resource_type_general"=>"Software", "ris"=>"COMP", "type"=>"SoftwareSourceCode")
38
+ # expect(subject.creator).to eq([{"familyName"=>"Jones", "givenName"=>"Matthew B.", "name"=>"Matthew B. Jones", "type"=>"Person"}])
39
+ # expect(subject.titles).to eq([{"title"=>"dataone: R interface to the DataONE network of data repositories"}])
40
+ # expect(subject.dates).to eq([{"date"=>"2016", "date_type"=>"Issued"}])
41
+ # expect(subject.publication_year).to eq("2016")
42
+ # expect(subject.publisher).to eq("KNB Data Repository")
43
+ # expect(subject.service_provider).to eq("DataCite")
44
+ # end
45
+
32
46
  it "SoftwareSourceCode missing_comma" do
33
47
  input = fixture_path + "datacite_software_missing_comma.json"
34
48
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
@@ -27,12 +27,12 @@ describe Bolognese::Metadata, vcr: true do
27
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
- expect(subject.title).to eq([{"text"=>"Data from: A new malaria agent in African hominids."}])
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
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
30
+ expect(subject.titles).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
31
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"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.","alternate_identifier_type"=>"citation"}])
32
+ expect(subject.rights_list).to eq([{"rights_uri"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
33
33
  expect(subject.publication_year).to eq("2011")
34
34
  expect(subject.related_identifiers.length).to eq(6)
35
- expect(subject.related_identifiers.last).to eq("id"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
35
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
36
36
  expect(subject.publisher).to eq("Dryad Digital Repository")
37
37
  expect(subject.service_provider).to eq("DataCite")
38
38
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -49,14 +49,14 @@ describe Bolognese::Metadata, vcr: true do
49
49
  expect(subject.types["ris"]).to eq("RPRT")
50
50
  expect(subject.types["bibtex"]).to eq("article")
51
51
  expect(subject.types["citeproc"]).to eq("article-journal")
52
- expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
53
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
54
- expect(subject.alternate_identifiers).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
55
- expect(subject.description.first["text"]).to start_with("Eating your own dog food")
52
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
53
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
54
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"MS-49-3632-5083", "alternate_identifier_type"=>"Local accession number"}])
55
+ expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
56
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
57
  expect(subject.publication_year).to eq("2016")
58
58
  expect(subject.related_identifiers.length).to eq(3)
59
- expect(subject.related_identifiers.last).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
59
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
60
60
  expect(subject.publisher).to eq("DataCite")
61
61
  expect(subject.service_provider).to eq("DataCite")
62
62
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -70,9 +70,9 @@ describe Bolognese::Metadata, vcr: true do
70
70
  expect(subject.types["type"]).to eq("ScholarlyArticle")
71
71
  expect(subject.types["resource_type"]).to eq("ConferencePaper")
72
72
  expect(subject.types["resource_type_general"]).to eq("Text")
73
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Nathaniel Johnston", "givenName"=>"Nathaniel", "familyName"=>"Johnston")
74
- expect(subject.title).to eq([{"text"=>"The Minimum Size of Qubit Unextendible Product Bases"}])
75
- expect(subject.description.first["text"]).to start_with("We investigate the problem of constructing unextendible product bases in the qubit case")
73
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Nathaniel Johnston", "givenName"=>"Nathaniel", "familyName"=>"Johnston"}])
74
+ expect(subject.titles).to eq([{"title"=>"The Minimum Size of Qubit Unextendible Product Bases"}])
75
+ expect(subject.descriptions.first["description"]).to start_with("We investigate the problem of constructing unextendible product bases in the qubit case")
76
76
  expect(subject.dates).to eq([{"date"=>"2013-11-05", "date_type"=>"Available"}, {"date"=>"2013", "date_type"=>"Issued"}])
77
77
  expect(subject.publication_year).to eq("2013")
78
78
  expect(subject.publisher).to eq("Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik GmbH, Wadern/Saarbruecken, Germany")
@@ -90,7 +90,7 @@ describe Bolognese::Metadata, vcr: true do
90
90
  expect(subject.types["resource_type_general"]).to eq("Audiovisual")
91
91
  expect(subject.creator.length).to eq(14)
92
92
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Haywood, Raphaelle Dawn", "givenName"=>"Raphaelle Dawn", "familyName"=>"Haywood")
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"}])
93
+ expect(subject.titles).to eq([{"lang"=>"en", "title"=>"Data underpinning - The Sun as a planet-host star: Proxies from SDO images for HARPS radial-velocity variations"}])
94
94
  expect(subject.dates).to eq([{"date"=>"2016-01-20", "date_type"=>"Available"}, {"date"=>"2016", "date_type"=>"Issued"}])
95
95
  expect(subject.publication_year).to eq("2016")
96
96
  expect(subject.publisher).to eq("University of St Andrews")
@@ -107,14 +107,14 @@ describe Bolognese::Metadata, vcr: true do
107
107
  expect(subject.types["resource_type_general"]).to eq("Software")
108
108
  expect(subject.types["ris"]).to eq("COMP")
109
109
  expect(subject.types["citeproc"]).to eq("article")
110
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Kristian Garza", "givenName"=>"Kristian", "familyName"=>"Garza")
111
- expect(subject.title).to eq([{"text"=>"Analysis Tools For Crossover Experiment Of Ui Using Choice Architecture"}])
112
- expect(subject.description.first["text"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
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"}])
110
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Kristian Garza", "givenName"=>"Kristian", "familyName"=>"Garza"}])
111
+ expect(subject.titles).to eq([{"title"=>"Analysis Tools For Crossover Experiment Of Ui Using Choice Architecture"}])
112
+ expect(subject.descriptions.first["description"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
113
+ expect(subject.rights_list).to eq([{"rights_uri"=>"https://creativecommons.org/licenses/by-nc-sa/4.0", "rights"=>"Creative Commons Attribution-NonCommercial-ShareAlike"}, {"rights"=>"Open Access"}])
114
114
  expect(subject.dates).to eq([{"date"=>"2016-03-27", "date_type"=>"Issued"}])
115
115
  expect(subject.publication_year).to eq("2016")
116
116
  expect(subject.related_identifiers.length).to eq(1)
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")
117
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0", "related_identifier_type"=>"URL", "relation_type"=>"IsSupplementTo")
118
118
  expect(subject.publisher).to eq("Zenodo")
119
119
  expect(subject.service_provider).to eq("DataCite")
120
120
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -130,13 +130,13 @@ describe Bolognese::Metadata, vcr: true do
130
130
  expect(subject.types["resource_type_general"]).to eq("Dataset")
131
131
  expect(subject.creator.count).to eq(11)
132
132
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0002-2410-9671", "name"=>"Alexander Junge", "givenName"=>"Alexander", "familyName"=>"Junge")
133
- expect(subject.title).to eq([{"text"=>"RAIN v1"}])
134
- expect(subject.description.first["text"]).to start_with("<b>RAIN: RNA–protein Association and Interaction Networks")
135
- expect(subject.rights).to eq([{"id"=>"https://creativecommons.org/licenses/by/4.0", "name"=>"CC-BY"}])
133
+ expect(subject.titles).to eq([{"title"=>"RAIN v1"}])
134
+ expect(subject.descriptions.first["description"]).to start_with("<b>RAIN: RNA–protein Association and Interaction Networks")
135
+ expect(subject.rights_list).to eq([{"rights_uri"=>"https://creativecommons.org/licenses/by/4.0", "rights"=>"CC-BY"}])
136
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
137
  expect(subject.publication_year).to eq("2016")
138
138
  expect(subject.related_identifiers.length).to eq(1)
139
- expect(subject.related_identifiers.last).to eq("id"=>"10.6084/m9.figshare.4234751", "related_identifier_type"=>"DOI", "relation_type"=>"IsIdenticalTo")
139
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.6084/m9.figshare.4234751", "related_identifier_type"=>"DOI", "relation_type"=>"IsIdenticalTo")
140
140
  expect(subject.publisher).to eq("Figshare")
141
141
  expect(subject.service_provider).to eq("DataCite")
142
142
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -151,8 +151,8 @@ describe Bolognese::Metadata, vcr: true do
151
151
  expect(subject.types["resource_type_general"]).to eq("Dataset")
152
152
  expect(subject.creator.length).to eq(4)
153
153
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Jahn, Najko", "givenName"=>"Najko", "familyName"=>"Jahn")
154
- expect(subject.title).to eq([{"text"=>"Publication Fp7 Funding Acknowledgment - Plos Openaire"}])
155
- expect(subject.description.first["text"]).to start_with("The dataset contains a sample of metadata describing papers")
154
+ expect(subject.titles).to eq([{"title"=>"Publication Fp7 Funding Acknowledgment - Plos Openaire"}])
155
+ expect(subject.descriptions.first["description"]).to start_with("The dataset contains a sample of metadata describing papers")
156
156
  expect(subject.dates).to eq([{"date"=>"2013-04-03", "date_type"=>"Issued"}])
157
157
  expect(subject.publication_year).to eq("2013")
158
158
  expect(subject.publisher).to eq("Zenodo")
@@ -196,11 +196,11 @@ describe Bolognese::Metadata, vcr: true do
196
196
  expect(subject.doi).to eq("10.5072/geopointexample")
197
197
  expect(subject.creator.length).to eq(3)
198
198
  expect(subject.creator.first).to eq("familyName"=>"Schumann", "givenName"=>"Kai", "name"=>"Kai Schumann", "type"=>"Person")
199
- expect(subject.title).to eq([{"text"=>"Gridded results of swath bathymetric mapping of Disko Bay, Western Greenland, 2007-2008"}])
199
+ expect(subject.titles).to eq([{"title"=>"Gridded results of swath bathymetric mapping of Disko Bay, Western Greenland, 2007-2008"}])
200
200
  expect(subject.publisher).to eq("PANGAEA - Data Publisher for Earth & Environmental Science")
201
201
  expect(subject.publication_year).to eq("2011")
202
- expect(subject.related_identifiers).to eq([{"id"=>"10.5072/timeseries", "related_identifier_type"=>"DOI", "relation_type"=>"Continues"}])
203
- expect(subject.geo_location).to eq([{"geo_location_place"=>"Disko Bay", "geo_location_point"=>{"point_latitude"=>"69.000000", "point_longitude"=>"-52.000000"}}])
202
+ expect(subject.related_identifiers).to eq([{"related_identifier"=>"10.5072/timeseries", "related_identifier_type"=>"DOI", "relation_type"=>"Continues"}])
203
+ expect(subject.geo_locations).to eq([{"geo_location_place"=>"Disko Bay", "geo_location_point"=>{"point_latitude"=>"69.000000", "point_longitude"=>"-52.000000"}}])
204
204
  end
205
205
 
206
206
  it "geo_location_box" do
@@ -212,11 +212,11 @@ describe Bolognese::Metadata, vcr: true do
212
212
  expect(subject.doi).to eq("10.6071/z7wc73")
213
213
  expect(subject.creator.length).to eq(6)
214
214
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
215
- expect(subject.title).to eq([{"text"=>"Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek\n meteorological data, soil moisture and temperature, snow depth and air\n temperature"}])
215
+ expect(subject.titles).to eq([{"title"=>"Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek\n meteorological data, soil moisture and temperature, snow depth and air\n temperature"}])
216
216
  expect(subject.publisher).to eq("UC Merced")
217
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
218
  expect(subject.publication_year).to eq("2013")
219
- expect(subject.geo_location).to eq([{"geo_location_box"=>
219
+ expect(subject.geo_locations).to eq([{"geo_location_box"=>
220
220
  {"east_bound_longitude"=>"-119.182",
221
221
  "north_bound_latitude"=>"37.075",
222
222
  "south_bound_latitude"=>"37.046",
@@ -233,7 +233,7 @@ describe Bolognese::Metadata, vcr: true do
233
233
  expect(subject.identifier).to eq("https://doi.org/10.14457/kmitl.res.2006.17")
234
234
  expect(subject.types["type"]).to eq("Dataset")
235
235
  expect(subject.creator.length).to eq(1)
236
- expect(subject.creator.first).to eq(["name", "กัญจนา แซ่เตียว"])
236
+ expect(subject.creator.first).to eq("name" => "กัญจนา แซ่เตียว")
237
237
  end
238
238
 
239
239
  it "multiple author names in one creatorName" do
@@ -242,7 +242,7 @@ describe Bolognese::Metadata, vcr: true do
242
242
  expect(subject.valid?).to be true
243
243
  expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/eqtqyo")
244
244
  expect(subject.types["type"]).to eq("Dataset")
245
- expect(subject.creator).to eq("name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)")
245
+ expect(subject.creator).to eq([{"name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)"}])
246
246
  end
247
247
 
248
248
  it "author with scheme" do
@@ -270,7 +270,7 @@ describe Bolognese::Metadata, vcr: true do
270
270
  subject = Bolognese::Metadata.new(input: input)
271
271
  expect(subject.valid?).to be true
272
272
  expect(subject.identifier).to eq("https://doi.org/10.21233/n34n5q")
273
- expect(subject.keywords).to eq([{"subject_scheme"=>"Library of Congress", "scheme_uri"=>"http://id.loc.gov/authorities/subjects", "text"=>"Paleoecology"}])
273
+ expect(subject.subjects).to eq([{"subject_scheme"=>"Library of Congress", "scheme_uri"=>"http://id.loc.gov/authorities/subjects", "subject"=>"Paleoecology"}])
274
274
  end
275
275
 
276
276
  it "Funding" do
@@ -283,8 +283,8 @@ describe Bolognese::Metadata, vcr: true do
283
283
  expect(subject.types["resource_type_general"]).to eq("Dataset")
284
284
  expect(subject.creator.length).to eq(2)
285
285
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-8740-8284", "name"=>"Bimbo, Nuno", "givenName"=>"Nuno", "familyName"=>"Bimbo")
286
- expect(subject.title).to eq([{"text"=>"Dataset for \"Direct Evidence for Solid-Like Hydrogen in a Nanoporous Carbon Hydrogen Storage Material at Supercritical Temperatures\""}])
287
- expect(subject.description.first["text"]).to start_with("Dataset for Direct Evidence for Solid-Like Hydrogen")
286
+ expect(subject.titles).to eq([{"title"=>"Dataset for \"Direct Evidence for Solid-Like Hydrogen in a Nanoporous Carbon Hydrogen Storage Material at Supercritical Temperatures\""}])
287
+ expect(subject.descriptions.first["description"]).to start_with("Dataset for Direct Evidence for Solid-Like Hydrogen")
288
288
  expect(subject.publication_year).to eq("2015")
289
289
  expect(subject.publisher).to eq("University of Bath")
290
290
  expect(subject.funding_references.length).to eq(5)
@@ -310,8 +310,8 @@ describe Bolognese::Metadata, vcr: true do
310
310
  expect(subject.types["citeproc"]).to eq("article")
311
311
  expect(subject.creator.length).to eq(24)
312
312
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-5331-6592", "name"=>"Farquhar, Adam", "givenName"=>"Adam", "familyName"=>"Farquhar")
313
- expect(subject.title).to eq([{"text"=>"Technical and Human Infrastructure for Open Research (THOR)"}])
314
- expect(subject.description.first["text"]).to start_with("Five years ago, a global infrastructure")
313
+ expect(subject.titles).to eq([{"title"=>"Technical and Human Infrastructure for Open Research (THOR)"}])
314
+ expect(subject.descriptions.first["description"]).to start_with("Five years ago, a global infrastructure")
315
315
  expect(subject.publication_year).to eq("2015")
316
316
  expect(subject.publisher).to eq("DataCite")
317
317
  expect(subject.funding_references).to eq([{"award_number"=>"654039",
@@ -334,13 +334,13 @@ describe Bolognese::Metadata, vcr: true do
334
334
  expect(subject.types["resource_type_general"]).to eq("Text")
335
335
  expect(subject.types["ris"]).to eq("RPRT")
336
336
  expect(subject.types["citeproc"]).to eq("article-journal")
337
- expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
338
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
339
- expect(subject.alternate_identifiers).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
337
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
338
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
339
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"MS-49-3632-5083", "alternate_identifier_type"=>"Local accession number"}])
340
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
341
  expect(subject.publication_year).to eq("2016")
342
342
  expect(subject.related_identifiers.length).to eq(3)
343
- expect(subject.related_identifiers.last).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
343
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
344
344
  expect(subject.service_provider).to eq("DataCite")
345
345
  end
346
346
 
@@ -355,13 +355,13 @@ describe Bolognese::Metadata, vcr: true do
355
355
  expect(subject.types["ris"]).to eq("BOOK")
356
356
  expect(subject.types["citeproc"]).to eq("book")
357
357
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
358
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
359
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
360
- expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
358
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
359
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
360
+ expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_information"=>"Correction", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
361
361
  expect(subject.publication_year).to eq("2010")
362
362
  expect(subject.related_identifiers.length).to eq(1)
363
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
364
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
363
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
364
+ expect(subject.rights_list).to eq([{"lang"=>"eng", "rights_uri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
365
365
  expect(subject.publisher).to eq("Springer")
366
366
  expect(subject.service_provider).to eq("DataCite")
367
367
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -378,12 +378,12 @@ describe Bolognese::Metadata, vcr: true do
378
378
  expect(subject.types["ris"]).to eq("BOOK")
379
379
  expect(subject.types["citeproc"]).to eq("book")
380
380
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
381
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
382
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
381
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
382
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
383
383
  expect(subject.publication_year).to eq("2010")
384
384
  expect(subject.related_identifiers.length).to eq(1)
385
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
386
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
385
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
386
+ expect(subject.rights_list).to eq([{"rights_uri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
387
387
  expect(subject.publisher).to eq("Springer")
388
388
  expect(subject.service_provider).to eq("DataCite")
389
389
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4.0")
@@ -400,12 +400,12 @@ describe Bolognese::Metadata, vcr: true do
400
400
  expect(subject.types["ris"]).to eq("BOOK")
401
401
  expect(subject.types["citeproc"]).to eq("book")
402
402
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
403
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
404
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
403
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
404
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
405
405
  expect(subject.publication_year).to eq("2010")
406
406
  expect(subject.related_identifiers.length).to eq(1)
407
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
408
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
407
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
408
+ expect(subject.rights_list).to eq([{"rights_uri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
409
409
  expect(subject.publisher).to eq("Springer")
410
410
  expect(subject.service_provider).to eq("DataCite")
411
411
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3.0")
@@ -422,12 +422,12 @@ describe Bolognese::Metadata, vcr: true do
422
422
  expect(subject.types["ris"]).to eq("BOOK")
423
423
  expect(subject.types["citeproc"]).to eq("book")
424
424
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
425
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
426
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
425
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
426
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
427
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
428
  expect(subject.publication_year).to eq("2010")
429
429
  expect(subject.related_identifiers.length).to eq(1)
430
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
430
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
431
431
  expect(subject.publisher).to eq("Springer")
432
432
  expect(subject.service_provider).to eq("DataCite")
433
433
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
@@ -442,17 +442,17 @@ describe Bolognese::Metadata, vcr: true do
442
442
  expect(subject.types["resource_type"]).to eq("Monograph")
443
443
  expect(subject.types["resource_type_general"]).to eq("Text")
444
444
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
445
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
446
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
447
- expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
445
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
446
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
447
+ expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_information"=>"Correction", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
448
448
  expect(subject.publication_year).to eq("2010")
449
- expect(subject.size).to eq(["256 pages"])
449
+ expect(subject.sizes).to eq(["256 pages"])
450
450
  expect(subject.formats).to eq(["pdf"])
451
451
  expect(subject.content_url).to eq("https://example.org/report.pdf")
452
452
  expect(subject.publication_year).to eq("2010")
453
453
  expect(subject.related_identifiers.length).to eq(1)
454
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
455
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
454
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
455
+ expect(subject.rights_list).to eq([{"lang"=>"eng", "rights_uri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
456
456
  expect(subject.publisher).to eq("Springer")
457
457
  expect(subject.service_provider).to eq("DataCite")
458
458
  end
@@ -467,7 +467,7 @@ describe Bolognese::Metadata, vcr: true do
467
467
  expect(subject.types["resource_type_general"]).to eq("Software")
468
468
  expect(subject.creator.length).to eq(5)
469
469
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Carlos PatiñO", "givenName"=>"Carlos", "familyName"=>"PatiñO")
470
- expect(subject.title).to eq([{"text"=>"LAMMPS Data-File Generator"}])
470
+ expect(subject.titles).to eq([{"title"=>"LAMMPS Data-File Generator"}])
471
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
472
  expect(subject.publication_year).to eq("2018")
473
473
  expect(subject.publisher).to eq("nanoHUB")
@@ -482,8 +482,8 @@ describe Bolognese::Metadata, vcr: true do
482
482
  expect(subject.identifier).to eq("https://doi.org/10.5067/terra+aqua/ceres/cldtyphist_l3.004")
483
483
  expect(subject.types["type"]).to eq("Dataset")
484
484
  expect(subject.types["resource_type_general"]).to eq("Dataset")
485
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Takmeng Wong", "givenName"=>"Takmeng", "familyName"=>"Wong")
486
- expect(subject.title).to eq([{"text"=>"CERES Level 3 Cloud Type Historgram Terra+Aqua HDF file - Edition4"}])
485
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Takmeng Wong", "givenName"=>"Takmeng", "familyName"=>"Wong"}])
486
+ expect(subject.titles).to eq([{"title"=>"CERES Level 3 Cloud Type Historgram Terra+Aqua HDF file - Edition4"}])
487
487
  expect(subject.publication_year).to eq("2016")
488
488
  expect(subject.publisher).to eq("NASA Langley Atmospheric Science Data Center DAAC")
489
489
  expect(subject.service_provider).to eq("DataCite")
@@ -497,9 +497,9 @@ describe Bolognese::Metadata, vcr: true do
497
497
  expect(subject.identifier).to eq("https://doi.org/10.4232/1.2745")
498
498
  expect(subject.types["type"]).to eq("Dataset")
499
499
  expect(subject.types["resource_type_general"]).to eq("Dataset")
500
- expect(subject.creator).to eq("type"=>"Organization", "name"=>"Europäische Kommission")
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"}])
502
- expect(subject.keywords).to eq([{"subject_scheme"=>"ZA", "text"=>"KAT12 International Institutions, Relations, Conditions"}])
500
+ expect(subject.creator).to eq([{"type"=>"Organization", "name"=>"Europäische Kommission"}])
501
+ expect(subject.titles).to eq([{"lang"=>"de", "title"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"lang"=>"en", "title"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"title_type"=>"Subtitle","lang"=>"de", "title"=>"The Common European Currency"}, {"title_type"=>"Subtitle", "lang"=>"en", "title"=>"The Common European Currency"}])
502
+ expect(subject.subjects).to eq([{"subject_scheme"=>"ZA", "lang"=>"en", "subject"=>"KAT12 International Institutions, Relations, Conditions"}])
503
503
  expect(subject.dates).to eq([{"date"=>"1995-12", "date_type"=>"Collected"}, {"date"=>"1996", "date_type"=>"Issued"}])
504
504
  expect(subject.publication_year).to eq("1996")
505
505
  expect(subject.publisher).to eq("GESIS Data Archive")
@@ -517,11 +517,11 @@ describe Bolognese::Metadata, vcr: true do
517
517
  expect(subject.types["resource_type_general"]).to eq("Text")
518
518
  expect(subject.creator.length).to eq(3)
519
519
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"P. Llamas", "givenName"=>"P.", "familyName"=>"Llamas")
520
- expect(subject.title).to eq([{"text"=>"Rural Electrification With Hybrid Power Systems Based on Renewables - Technical System Configurations From the Point of View of the European Industry"}])
520
+ expect(subject.titles).to eq([{"title"=>"Rural Electrification With Hybrid Power Systems Based on Renewables - Technical System Configurations From the Point of View of the European Industry"}])
521
521
  expect(subject.dates).to eq([{"date"=>"2008-11-01", "date_type"=>"Valid"}, {"date"=>"2008", "date_type"=>"Issued"}])
522
522
  expect(subject.publication_year).to eq("2008")
523
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")
524
- expect(subject.description.first["text"]).to start_with("Aim of this paper is the presentation")
524
+ expect(subject.descriptions.first["description"]).to start_with("Aim of this paper is the presentation")
525
525
  expect(subject.publisher).to eq("WIP-Munich")
526
526
  expect(subject.service_provider).to eq("DataCite")
527
527
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
@@ -533,7 +533,8 @@ describe Bolognese::Metadata, vcr: true do
533
533
  expect(subject.valid?).to be true
534
534
  expect(subject.doi).to eq("10.23725/8na3-9s47")
535
535
  expect(subject.identifier).to eq("https://doi.org/10.23725/8na3-9s47")
536
- expect(subject.alternate_identifiers).to include({"name"=>"3b33f6b9338fccab0901b7d317577ea3", "type"=>"md5"}, {"name"=>"ark:/99999/fk41CrU4eszeLUDe", "type"=>"minid"}, {"name"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7", "type"=>"dataguid"})
536
+ expect(subject.alternate_identifiers.length).to eq(3)
537
+ expect(subject.alternate_identifiers.first).to eq("alternate_identifier"=>"ark:/99999/fk41CrU4eszeLUDe", "alternate_identifier_type"=>"minid")
537
538
  expect(subject.content_url).to include("s3://cgp-commons-public/topmed_open_access/197bc047-e917-55ed-852d-d563cdbc50e4/NWD165827.recab.cram", "gs://topmed-irc-share/public/NWD165827.recab.cram")
538
539
  end
539
540
 
@@ -545,8 +546,8 @@ describe Bolognese::Metadata, vcr: true do
545
546
  expect(subject.types["type"]).to eq("Dataset")
546
547
  expect(subject.types["resource_type"]).to eq("Disclosure")
547
548
  expect(subject.types["resource_type_general"]).to eq("Dataset")
548
- expect(subject.creator).to eq("name"=>"Anonymous")
549
- expect(subject.title).to eq([{"text"=>"Messung der Bildunschaerfe in H.264-codierten Bildern und Videosequenzen"}])
549
+ expect(subject.creator).to eq([{"name"=>"Anonymous"}])
550
+ expect(subject.titles).to eq([{"title"=>"Messung der Bildunschaerfe in H.264-codierten Bildern und Videosequenzen"}])
550
551
  expect(subject.dates).to eq([{"date"=>"07.04.2017", "date_type"=>"Available"}, {"date"=>"2017", "date_type"=>"Issued"}])
551
552
  expect(subject.publication_year).to eq("2017")
552
553
  expect(subject.publisher).to eq("Siemens AG")
@@ -576,7 +577,7 @@ describe Bolognese::Metadata, vcr: true do
576
577
  "name"=>"Henk Eskes",
577
578
  "givenName"=>"Henk",
578
579
  "familyName"=>"Eskes"}])
579
- expect(subject.title).to eq([{"text"=>"Multi-Sensor Reanalysis (MSR) of total ozone, version 2"}])
580
+ expect(subject.titles).to eq([{"title"=>"Multi-Sensor Reanalysis (MSR) of total ozone, version 2"}])
580
581
  expect(subject.version).to eq("2")
581
582
  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
583
  expect(subject.publication_year).to eq("2015")
@@ -602,8 +603,8 @@ describe Bolognese::Metadata, vcr: true do
602
603
  expect(subject.identifier).to eq("https://handle.test.datacite.org/10.22002/d1.694")
603
604
  expect(subject.types["type"]).to eq("Dataset")
604
605
  expect(subject.types["resource_type_general"]).to eq("Dataset")
605
- expect(subject.creator).to eq("name"=>"Tester")
606
- expect(subject.title).to eq([{"text"=>"Test license"}])
606
+ expect(subject.creator).to eq([{"name"=>"Tester"}])
607
+ expect(subject.titles).to eq([{"title"=>"Test license"}])
607
608
  expect(subject.dates).to eq([{"date"=>"2018-01-12", "date_type"=>"Issued"}])
608
609
  expect(subject.publication_year).to eq("2018")
609
610
  expect(subject.publisher).to eq("CaltechDATA")
@@ -623,7 +624,7 @@ describe Bolognese::Metadata, vcr: true do
623
624
  expect(subject.types["citeproc"]).to eq("article-journal")
624
625
  expect(subject.creator.length).to eq(5)
625
626
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Lina Patel", "givenName"=>"Lina", "familyName"=>"Patel")
626
- expect(subject.title).to eq([{"text"=>"Referee report. For: Gates - add article keywords to the metatags [version 2; referees: 1 approved]"}])
627
+ expect(subject.titles).to eq([{"title"=>"Referee report. For: Gates - add article keywords to the metatags [version 2; referees: 1 approved]"}])
627
628
  expect(subject.publication_year).to eq("2018")
628
629
  expect(subject.publisher).to eq("Gates Open Research")
629
630
  expect(subject.service_provider).to eq("DataCite")
@@ -633,7 +634,7 @@ describe Bolognese::Metadata, vcr: true do
633
634
  it "missing creator" do
634
635
  input = fixture_path + "datacite_missing_creator.xml"
635
636
  subject = Bolognese::Metadata.new(input: input, regenerate: true)
636
- expect(subject.creator).to be_nil
637
+ expect(subject.creator).to be_blank
637
638
  expect(subject.valid?).to be false
638
639
  expect(subject.errors).to eq("4:0: ERROR: Element '{http://datacite.org/schema/kernel-4}creators': Missing child element(s). Expected is ( {http://datacite.org/schema/kernel-4}creator ).")
639
640
  end
@@ -641,7 +642,7 @@ describe Bolognese::Metadata, vcr: true do
641
642
  it "malformed creator" do
642
643
  input = fixture_path + "datacite_malformed_creator.xml"
643
644
  subject = Bolognese::Metadata.new(input: input, regenerate: false)
644
- expect(subject.creator).to be_nil
645
+ expect(subject.creator).to be_blank
645
646
  expect(subject.valid?).to be false
646
647
  expect(subject.errors).to eq("16:0: ERROR: Element '{http://datacite.org/schema/kernel-4}creatorName': This element is not expected. Expected is ( {http://datacite.org/schema/kernel-4}affiliation ).")
647
648
  end
@@ -664,8 +665,8 @@ describe Bolognese::Metadata, vcr: true do
664
665
  expect(subject.types["type"]).to eq("Thesis")
665
666
  expect(subject.types["bibtex"]).to eq("phdthesis")
666
667
  expect(subject.types["citeproc"]).to eq("thesis")
667
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Heiko Conrad", "givenName"=>"Heiko", "familyName"=>"Conrad")
668
- expect(subject.title).to eq([{"text"=>"Dynamics of colloids in molecular glass forming liquids studied via X-ray photon correlation spectroscopy"}])
668
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Heiko Conrad", "givenName"=>"Heiko", "familyName"=>"Conrad"}])
669
+ expect(subject.titles).to eq([{"title"=>"Dynamics of colloids in molecular glass forming liquids studied via X-ray photon correlation spectroscopy"}])
669
670
  expect(subject.dates).to eq([{"date"=>"2014", "date_type"=>"Issued"},
670
671
  {"date"=>"2014", "date_type"=>"Copyrighted"},
671
672
  {"date"=>"2009-10-01/2014-01-23", "date_type"=>"Created"}])
@@ -682,8 +683,8 @@ describe Bolognese::Metadata, vcr: true do
682
683
  expect(subject.identifier).to eq("https://doi.org/10.4121/uuid:3926db30-f712-4394-aebc-75976070e91f")
683
684
  expect(subject.types["type"]).to eq("Dataset")
684
685
  expect(subject.types["resource_type_general"]).to eq("Dataset")
685
- expect(subject.title).to eq([{"text"=>"BPI Challenge 2012"}])
686
- expect(subject.dates).to eq([{"date"=>"2011-10-01/2012-03-14", "date_type"=>"Other"}, {"date"=>"2012", "date_type"=>"Issued"}])
686
+ expect(subject.titles).to eq([{"title"=>"BPI Challenge 2012"}])
687
+ expect(subject.dates).to eq([{"date"=>"2011-10-01/2012-03-14", "date_information"=>"Temporal coverage of this dataset.", "date_type"=>"Other"}, {"date"=>"2012", "date_type"=>"Issued"}])
687
688
  expect(subject.publication_year).to eq("2012")
688
689
  expect(subject.state).to eq("findable")
689
690
  end
@@ -691,13 +692,13 @@ describe Bolognese::Metadata, vcr: true do
691
692
 
692
693
  context "change datacite metadata" do
693
694
  it "change title" do
694
- subject.title = "A new malaria agent in African hominids."
695
+ subject.titles = [{"title"=> "A new malaria agent in African hominids." }]
695
696
  expect(subject.valid?).to be true
696
697
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
697
698
  expect(subject.doi).to eq("10.5061/dryad.8515")
698
699
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
699
700
  expect(subject.types["type"]).to eq("Dataset")
700
- expect(subject.title).to eq("A new malaria agent in African hominids.")
701
+ expect(subject.titles).to eq([{"title"=> "A new malaria agent in African hominids." }])
701
702
  end
702
703
 
703
704
  it "change state" do
@@ -707,7 +708,7 @@ describe Bolognese::Metadata, vcr: true do
707
708
  expect(subject.doi).to eq("10.5061/dryad.8515")
708
709
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
709
710
  expect(subject.types["type"]).to eq("Dataset")
710
- expect(subject.title).to eq([{"text"=>"Data from: A new malaria agent in African hominids."}])
711
+ expect(subject.titles).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
711
712
  expect(subject.state).to eq("registered")
712
713
  end
713
714
  end
@@ -720,8 +721,8 @@ describe Bolognese::Metadata, vcr: true do
720
721
  expect(subject.valid?).to be true
721
722
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
722
723
  expect(subject.doi).to eq("10.5061/dryad.8515")
723
- expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
724
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
724
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
725
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
725
726
  expect(subject.publisher).to eq("DataCite")
726
727
  expect(subject.publication_year).to eq("2016")
727
728
  end
@@ -739,15 +740,15 @@ describe Bolognese::Metadata, vcr: true do
739
740
  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")
740
741
  expect(subject.types["type"]).to eq("Dataset")
741
742
  expect(subject.types["resource_type"]).to eq("DroNc-seq data")
742
- expect(subject.creator).to eq("name"=>"The GTEx Consortium", "type"=>"Organization")
743
- expect(subject.title).to eq([{"text"=>"DroNc-seq data"}])
744
- expect(subject.keywords).to eq([{"text"=>"gtex"}, {"text"=>"annotation"}, {"text"=>"phenotype"}, {"text"=>"gene regulation"}, {"text"=>"transcriptomics"}])
743
+ expect(subject.creator).to eq([{"name"=>"The GTEx Consortium", "type"=>"Organization"}])
744
+ expect(subject.titles).to eq([{"title"=>"DroNc-seq data"}])
745
+ expect(subject.subjects).to eq([{"subject"=>"gtex"}, {"subject"=>"annotation"}, {"subject"=>"phenotype"}, {"subject"=>"gene regulation"}, {"subject"=>"transcriptomics"}])
745
746
  expect(subject.dates).to eq([{"date"=>"2017", "date_type"=>"Issued"}])
746
747
  expect(subject.publication_year).to eq("2017")
747
748
  expect(subject.related_identifiers.length).to eq(4)
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")
749
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "related_identifier_type"=>"URL", "relation_type"=>"IsPartOf")
749
750
  expect(subject.formats).to eq(["application/tar"])
750
- expect(subject.size).to eq(["15.7M"])
751
+ expect(subject.sizes).to eq(["15.7M"])
751
752
  expect(subject.periodical).to eq("id"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "title"=>"GTEx", "type"=>"DataCatalog")
752
753
  expect(subject.publisher).to eq("GTEx")
753
754
  expect(subject.funding_references.count).to eq(7)