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
@@ -36,8 +36,8 @@ describe Bolognese::Metadata, vcr: true do
36
36
  "name"=>"Martial Sankar",
37
37
  "givenName"=>"Martial",
38
38
  "familyName"=>"Sankar")
39
- expect(subject.title).to eq([{"text"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
40
- expect(subject.description.first["text"]).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
39
+ expect(subject.titles).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
40
+ expect(subject.descriptions.first["description"]).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
41
41
  expect(subject.dates).to eq([{"date"=>"2014", "date_type"=>"Issued"}])
42
42
  expect(subject.publication_year).to eq("2014")
43
43
  expect(subject.related_identifiers).to eq([{"id"=>"2050084X", "related_identifier_type"=>"ISSN", "relation_type"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical"}])
@@ -52,9 +52,9 @@ describe Bolognese::Metadata, vcr: true do
52
52
  expect(subject.state).to eq("not_found")
53
53
  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
54
54
  expect(subject.types).to eq("citeproc"=>"misc", "resource_type_general"=>"Text", "ris"=>"THES", "type"=>"Thesis")
55
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Y. Toparlar", "givenName"=>"Y.", "familyName"=>"Toparlar")
56
- expect(subject.title).to eq([{"text"=>"A multiscale analysis of the urban heat island effect"}])
57
- expect(subject.description.first["text"]).to start_with("Designing the climates of cities")
55
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Y. Toparlar", "givenName"=>"Y.", "familyName"=>"Toparlar"}])
56
+ expect(subject.titles).to eq([{"title"=>"A multiscale analysis of the urban heat island effect"}])
57
+ expect(subject.descriptions.first["description"]).to start_with("Designing the climates of cities")
58
58
  expect(subject.dates).to eq([{"date"=>"2018-04-25", "date_type"=>"Issued"}, {"date"=>"2018-04-25", "date_type"=>"Created"}])
59
59
  expect(subject.publication_year).to eq("2018")
60
60
  end
@@ -22,14 +22,14 @@ describe Bolognese::Metadata, vcr: true do
22
22
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
23
23
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
24
24
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
25
- expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
26
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
27
- expect(subject.description.first["text"]).to start_with("Eating your own dog food")
28
- expect(subject.keywords).to eq(["datacite", "doi", "metadata", "featured"])
25
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
26
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
27
+ expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
28
+ expect(subject.subjects).to eq([{"subject"=>"datacite"}, {"subject"=>"doi"}, {"subject"=>"metadata"}, {"subject"=>"featured"}])
29
29
  expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
30
30
  expect(subject.publication_year).to eq("2016")
31
31
  expect(subject.related_identifiers.length).to eq(3)
32
- expect(subject.related_identifiers.last).to eq("id"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
32
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
33
33
  expect(subject.publisher).to eq("DataCite")
34
34
  end
35
35
 
@@ -51,7 +51,7 @@ describe Bolognese::Metadata, vcr: true do
51
51
  expect(subject.doi).to eq("10.5281/zenodo.1196821")
52
52
  expect(subject.url).to eq("https://zenodo.org/record/1196821")
53
53
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
54
- expect(subject.title).to eq([{"text"=>"PsPM-SC4B: SCR, ECG, EMG, PSR and respiration measurements in a delay fear conditioning task with auditory CS and electrical US"}])
54
+ expect(subject.titles).to eq([{"title"=>"PsPM-SC4B: SCR, ECG, EMG, PSR and respiration measurements in a delay fear conditioning task with auditory CS and electrical US"}])
55
55
  expect(subject.creator.size).to eq(6)
56
56
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-9688-838X", "name"=>"Matthias Staib", "givenName"=>"Matthias", "familyName"=>"Staib")
57
57
  end
@@ -64,7 +64,7 @@ describe Bolognese::Metadata, vcr: true do
64
64
  expect(subject.doi).to eq("10.1594/pangaea.836178")
65
65
  expect(subject.url).to eq("https://doi.pangaea.de/10.1594/PANGAEA.836178")
66
66
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
67
- expect(subject.title).to eq([{"text"=>"Hydrological and meteorological investigations in a lake near Kangerlussuaq, west Greenland"}])
67
+ expect(subject.titles).to eq([{"title"=>"Hydrological and meteorological investigations in a lake near Kangerlussuaq, west Greenland"}])
68
68
  expect(subject.creator.size).to eq(8)
69
69
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Johansson, Emma", "givenName"=>"Emma", "familyName"=>"Johansson")
70
70
  end
@@ -91,9 +91,9 @@ describe Bolognese::Metadata, vcr: true do
91
91
  expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/nj7xso")
92
92
  expect(subject.doi).to eq("10.7910/dvn/nj7xso")
93
93
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
94
- expect(subject.title).to eq([{"text"=>"Summary data ankylosing spondylitis GWAS"}])
94
+ expect(subject.titles).to eq([{"title"=>"Summary data ankylosing spondylitis GWAS"}])
95
95
  expect(subject.periodical).to eq("title"=>"Harvard Dataverse", "type"=>"DataCatalog", "url"=>"https://dataverse.harvard.edu")
96
- expect(subject.creator).to eq("name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)")
96
+ expect(subject.creator).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)"}])
97
97
  expect(subject.schema_version).to eq("https://schema.org/version/3.3")
98
98
  end
99
99
 
@@ -104,9 +104,9 @@ describe Bolognese::Metadata, vcr: true do
104
104
  expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/nj7xso")
105
105
  expect(subject.doi).to eq("10.7910/dvn/nj7xso")
106
106
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
107
- expect(subject.title).to eq([{"text"=>"Summary data ankylosing spondylitis GWAS"}])
107
+ expect(subject.titles).to eq([{"title"=>"Summary data ankylosing spondylitis GWAS"}])
108
108
  expect(subject.periodical).to eq("title"=>"Harvard Dataverse", "type"=>"DataCatalog", "url"=>"https://dataverse.harvard.edu")
109
- expect(subject.creator).to eq("name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)")
109
+ expect(subject.creator).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)"}])
110
110
  end
111
111
  end
112
112
 
@@ -118,14 +118,14 @@ describe Bolognese::Metadata, vcr: true do
118
118
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
119
119
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
120
120
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
121
- expect(subject.creator).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
122
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
123
- expect(subject.description.first["text"]).to start_with("Eating your own dog food")
124
- expect(subject.keywords).to eq(["datacite", "doi", "metadata", "featured"])
121
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
122
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
123
+ expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
124
+ expect(subject.subjects).to eq([{"subject"=>"datacite"}, {"subject"=>"doi"}, {"subject"=>"metadata"}, {"subject"=>"featured"}])
125
125
  expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
126
126
  expect(subject.publication_year).to eq("2016")
127
127
  expect(subject.related_identifiers.length).to eq(3)
128
- expect(subject.related_identifiers.last).to eq("id"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
128
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
129
129
  expect(subject.publisher).to eq("DataCite")
130
130
  end
131
131
 
@@ -135,14 +135,14 @@ describe Bolognese::Metadata, vcr: true do
135
135
 
136
136
  expect(subject.valid?).to be true
137
137
  expect(subject.identifier).to eq("https://doi.org/10.25491/d50j-3083")
138
- expect(subject.alternate_identifiers).to eq("name"=>"687610993", "type"=>"md5")
138
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"687610993", "alternate_identifier_type"=>"md5"}])
139
139
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.25491/d50j-3083")
140
140
  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"])
141
141
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"Gene expression matrices", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
142
- expect(subject.creator).to eq("name"=>"The GTEx Consortium", "type"=>"Organization")
143
- expect(subject.title).to eq([{"text"=>"Fully processed, filtered and normalized gene expression matrices (in BED format) for each tissue, which were used as input into FastQTL for eQTL discovery"}])
142
+ expect(subject.creator).to eq([{"name"=>"The GTEx Consortium", "type"=>"Organization"}])
143
+ expect(subject.titles).to eq([{"title"=>"Fully processed, filtered and normalized gene expression matrices (in BED format) for each tissue, which were used as input into FastQTL for eQTL discovery"}])
144
144
  expect(subject.version).to eq("v7")
145
- expect(subject.keywords).to eq(["gtex", "annotation", "phenotype", "gene regulation", "transcriptomics"])
145
+ expect(subject.subjects).to eq([{"subject"=>"gtex"}, {"subject"=>"annotation"}, {"subject"=>"phenotype"}, {"subject"=>"gene regulation"}, {"subject"=>"transcriptomics"}])
146
146
  expect(subject.dates).to eq([{"date"=>"2017", "date_type"=>"Issued"}])
147
147
  expect(subject.publication_year).to eq("2017")
148
148
  expect(subject.periodical).to eq("title"=>"GTEx", "type"=>"DataCatalog")
@@ -157,17 +157,17 @@ describe Bolognese::Metadata, vcr: true do
157
157
 
158
158
  expect(subject.valid?).to be true
159
159
  expect(subject.identifier).to eq("https://doi.org/10.23725/8na3-9s47")
160
- expect(subject.alternate_identifiers).to eq([{"name"=>"3b33f6b9338fccab0901b7d317577ea3", "type"=>"md5"}, {"name"=>"ark:/99999/fk41CrU4eszeLUDe", "type"=>"minid"}, {"name"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7", "type"=>"dataguid"}])
160
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"3b33f6b9338fccab0901b7d317577ea3","alternate_identifier_type"=>"md5"},{"alternate_identifier"=>"ark:/99999/fk41CrU4eszeLUDe","alternate_identifier_type"=>"minid"},{"alternate_identifier"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7", "alternate_identifier_type"=>"dataguid"}])
161
161
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/8na3-9s47")
162
162
  expect(subject.content_url).to eq(["s3://cgp-commons-public/topmed_open_access/197bc047-e917-55ed-852d-d563cdbc50e4/NWD165827.recab.cram", "gs://topmed-irc-share/public/NWD165827.recab.cram"])
163
163
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"CRAM file", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
164
- expect(subject.creator).to eq("name"=>"TOPMed IRC", "type"=>"Organization")
165
- expect(subject.title).to eq([{"text"=>"NWD165827.recab.cram"}])
166
- expect(subject.keywords).to eq(["topmed", "whole genome sequencing"])
164
+ expect(subject.creator).to eq([{"name"=>"TOPMed IRC", "type"=>"Organization"}])
165
+ expect(subject.titles).to eq([{"title"=>"NWD165827.recab.cram"}])
166
+ expect(subject.subjects).to eq([{"subject"=>"topmed"}, {"subject"=>"whole genome sequencing"}])
167
167
  expect(subject.dates).to eq([{"date"=>"2017-11-30", "date_type"=>"Issued"}])
168
168
  expect(subject.publication_year).to eq("2017")
169
169
  expect(subject.publisher).to eq("TOPMed")
170
- expect(subject.related_identifiers).to eq([{"id"=>"10.23725/2g4s-qv04", "related_identifier_type"=>"DOI", "relation_type"=>"References", "resource_type_general"=>"Dataset"}])
170
+ expect(subject.related_identifiers).to eq([{"related_identifier"=>"10.23725/2g4s-qv04", "related_identifier_type"=>"DOI", "relation_type"=>"References", "resource_type_general"=>"Dataset"}])
171
171
  expect(subject.funding_references).to eq([{"funder_identifier"=>"https://doi.org/10.13039/100000050", "funder_identifier_type"=>"Crossref Funder ID", "funder_name"=>"National Heart, Lung, and Blood Institute (NHLBI)"}])
172
172
  end
173
173
 
@@ -180,13 +180,20 @@ describe Bolognese::Metadata, vcr: true do
180
180
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
181
181
  expect(subject.creator.length).to eq(6)
182
182
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
183
- expect(subject.title).to eq([{"text"=>"Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek meteorological data, soil moisture and temperature, snow depth and air temperature"}])
184
- expect(subject.keywords).to eq(["Earth sciences", "soil moisture", "soil temperature", "snow depth", "air temperature", "water balance", "Nevada", "Sierra (mountain range)"])
183
+ expect(subject.titles).to eq([{"title"=>"Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek meteorological data, soil moisture and temperature, snow depth and air temperature"}])
184
+ expect(subject.subjects).to eq([{"subject"=>"Earth sciences"},
185
+ {"subject"=>"soil moisture"},
186
+ {"subject"=>"soil temperature"},
187
+ {"subject"=>"snow depth"},
188
+ {"subject"=>"air temperature"},
189
+ {"subject"=>"water balance"},
190
+ {"subject"=>"Nevada"},
191
+ {"subject"=>"Sierra (mountain range)"}])
185
192
  expect(subject.dates).to eq([{"date"=>"2013", "date_type"=>"Issued"}, {"date"=>"2014-10-17", "date_type"=>"Updated"}])
186
193
  expect(subject.publication_year).to eq("2013")
187
194
  expect(subject.publisher).to eq("UC Merced")
188
195
  expect(subject.funding_references).to eq([{"funder_name"=>"National Science Foundation, Division of Earth Sciences, Critical Zone Observatories"}])
189
- expect(subject.geo_location).to eq([{"geo_location_place"=>"Providence Creek (Lower, Upper and P301)", "geo_location_point"=>{"point_latitude"=>"37.047756", "point_longitude"=>"-119.221094"}}])
196
+ expect(subject.geo_locations).to eq([{"geo_location_place"=>"Providence Creek (Lower, Upper and P301)", "geo_location_point"=>{"point_latitude"=>"37.047756", "point_longitude"=>"-119.221094"}}])
190
197
  end
191
198
 
192
199
  it "geolocation geoshape" do
@@ -198,11 +205,11 @@ describe Bolognese::Metadata, vcr: true do
198
205
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
199
206
  expect(subject.creator.length).to eq(2)
200
207
  expect(subject.creator.first).to eq("name"=>"Tara Oceans Consortium, Coordinators", "type"=>"Organization")
201
- expect(subject.title).to eq([{"text"=>"Registry of all stations from the Tara Oceans Expedition (2009-2013)"}])
208
+ expect(subject.titles).to eq([{"title"=>"Registry of all stations from the Tara Oceans Expedition (2009-2013)"}])
202
209
  expect(subject.dates).to eq([{"date"=>"2015-02-03", "date_type"=>"Issued"}])
203
210
  expect(subject.publication_year).to eq("2015")
204
211
  expect(subject.publisher).to eq("PANGAEA")
205
- expect(subject.geo_location).to eq([{"geo_location_box"=>{"east_bound_longitude"=>"174.9006", "north_bound_latitude"=>"79.6753", "south_bound_latitude"=>"-64.3088", "west_bound_longitude"=>"-168.5182"}}])
212
+ expect(subject.geo_locations).to eq([{"geo_location_box"=>{"east_bound_longitude"=>"174.9006", "north_bound_latitude"=>"79.6753", "south_bound_latitude"=>"-64.3088", "west_bound_longitude"=>"-168.5182"}}])
206
213
  end
207
214
 
208
215
  it "schema_org list" do
@@ -211,13 +218,13 @@ describe Bolognese::Metadata, vcr: true do
211
218
  subject = Bolognese::Metadata.new(input: input)
212
219
  expect(subject.valid?).to be true
213
220
  expect(subject.identifier).to eq("https://doi.org/10.23725/7jg3-v803")
214
- expect(subject.alternate_identifiers).to eq([{"name"=>"ark:/99999/fk4E1n6n1YHKxPk", "type"=>"minid"}, {"name"=>"dg.4503/01b048d0-e128-4cb0-94e9-b2d2cab7563d", "type"=>"dataguid"}, {"name"=>"f9e72bdf25bf4b4f0e581d9218fec2eb", "type"=>"md5"}])
221
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"ark:/99999/fk4E1n6n1YHKxPk","alternate_identifier_type"=>"minid"},{"alternate_identifier"=>"dg.4503/01b048d0-e128-4cb0-94e9-b2d2cab7563d","alternate_identifier_type"=>"dataguid"},{"alternate_identifier"=>"f9e72bdf25bf4b4f0e581d9218fec2eb","alternate_identifier_type"=>"md5"}])
215
222
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/7jg3-v803")
216
223
  expect(subject.content_url).to eq(["s3://cgp-commons-public/topmed_open_access/44a8837b-4456-5709-b56b-54e23000f13a/NWD100953.recab.cram","gs://topmed-irc-share/public/NWD100953.recab.cram","dos://dos.commons.ucsc-cgp.org/01b048d0-e128-4cb0-94e9-b2d2cab7563d?version=2018-05-26T133719.491772Z"])
217
224
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"CRAM file", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
218
- expect(subject.creator).to eq("name"=>"TOPMed", "type"=>"Organization")
219
- expect(subject.title).to eq([{"text"=>"NWD100953.recab.cram"}])
220
- expect(subject.keywords).to eq(["topmed", "whole genome sequencing"])
225
+ expect(subject.creator).to eq([{"name"=>"TOPMed", "type"=>"Organization"}])
226
+ expect(subject.titles).to eq([{"title"=>"NWD100953.recab.cram"}])
227
+ expect(subject.subjects).to eq([{"subject"=>"topmed"}, {"subject"=>"whole genome sequencing"}])
221
228
  expect(subject.dates).to eq([{"date"=>"2017-11-30", "date_type"=>"Issued"}])
222
229
  expect(subject.publication_year).to eq("2017")
223
230
  expect(subject.publisher).to eq("TOPMed")
@@ -195,13 +195,13 @@ describe Bolognese::Metadata, vcr: true do
195
195
  it "doi" do
196
196
  ids = [{"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5438/0012"}, {"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5438/55E5-T5C0"}]
197
197
  response = subject.normalize_ids(ids: ids)
198
- expect(response).to eq([{"id"=>"10.5438/0012", "related_identifier_type"=>"DOI"}, {"id"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI"}])
198
+ expect(response).to eq([{"related_identifier"=>"10.5438/0012", "related_identifier_type"=>"DOI"}, {"related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI"}])
199
199
  end
200
200
 
201
201
  it "url" do
202
202
  ids = [{"@type"=>"CreativeWork", "@id"=>"https://blog.datacite.org/eating-your-own-dog-food/"}]
203
203
  response = subject.normalize_ids(ids: ids)
204
- expect(response).to eq("id"=>"https://blog.datacite.org/eating-your-own-dog-food", "related_identifier_type"=>"URL")
204
+ expect(response).to eq("related_identifier"=>"https://blog.datacite.org/eating-your-own-dog-food", "related_identifier_type"=>"URL")
205
205
  end
206
206
  end
207
207
 
@@ -238,7 +238,7 @@ describe Bolognese::Metadata, vcr: true do
238
238
  context "to_schema_org_identifier" do
239
239
  it "with alternate_identifier" do
240
240
  identifier = "https://doi.org/10.23725/8na3-9s47"
241
- alternate_identifiers = [{"type"=>"md5", "name"=>"3b33f6b9338fccab0901b7d317577ea3"}, {"type"=>"minid", "name"=>"ark:/99999/fk41CrU4eszeLUDe"}, {"type"=>"dataguid", "name"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7"}]
241
+ alternate_identifiers = [{"alternate_identifier_type"=>"md5", "alternate_identifier"=>"3b33f6b9338fccab0901b7d317577ea3"}, {"alternate_identifier_type"=>"minid", "alternate_identifier"=>"ark:/99999/fk41CrU4eszeLUDe"}, {"alternate_identifier_type"=>"dataguid", "alternate_identifier"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7"}]
242
242
  response = subject.to_schema_org_identifier(identifier, alternate_identifiers: alternate_identifiers, type: "Dataset")
243
243
  expect(response).to eq([{"@type"=>"PropertyValue", "propertyID"=>"doi", "value"=>"https://doi.org/10.23725/8na3-9s47"},
244
244
  {"@type"=>"PropertyValue",
@@ -76,7 +76,7 @@ describe Bolognese::Metadata, vcr: true do
76
76
  input = fixture_path + "datacite.json"
77
77
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
78
78
  bibtex = BibTeX.parse(subject.bibtex).to_a(quotes: '').first
79
- expect(bibtex[:bibtex_type].to_s).to eq("misc")
79
+ expect(bibtex[:bibtex_type].to_s).to eq("article")
80
80
  expect(bibtex[:bibtex_key]).to eq("https://doi.org/10.5438/4k3m-nyvg")
81
81
  expect(bibtex[:doi]).to eq("10.5438/4k3m-nyvg")
82
82
  expect(bibtex[:title]).to eq("Eating your own Dog Food")
@@ -44,7 +44,7 @@ describe Bolognese::Metadata, vcr: true do
44
44
  input = fixture_path + "datacite.json"
45
45
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
46
46
  json = JSON.parse(subject.citeproc)
47
- expect(json["type"]).to eq("article")
47
+ expect(json["type"]).to eq("article-journal")
48
48
  expect(json["id"]).to eq("https://doi.org/10.5438/4k3m-nyvg")
49
49
  expect(json["DOI"]).to eq("10.5438/4k3m-nyvg")
50
50
  expect(json["title"]).to eq("Eating your own Dog Food")
@@ -4,20 +4,20 @@ require 'spec_helper'
4
4
 
5
5
  describe Bolognese::Metadata, vcr: true do
6
6
  context "write metadata as codemeta" do
7
- it "SoftwareSourceCode DataCite JSON" do
8
- input = fixture_path + "datacite_software.json"
9
- subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
10
- expect(subject.valid?).to be true
11
- json = JSON.parse(subject.codemeta)
12
- expect(json["@context"]).to eq("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
13
- expect(json["@id"]).to eq("https://doi.org/10.5063/f1m61h5x")
14
- expect(json["@type"]).to eq("SoftwareSourceCode")
15
- expect(json["identifier"]).to eq("https://doi.org/10.5063/f1m61h5x")
16
- expect(json["agents"]).to eq("type"=>"Person", "name"=>"Matthew B. Jones", "givenName"=>"Matthew B.", "familyName"=>"Jones")
17
- expect(json["title"]).to eq("dataone: R interface to the DataONE network of data repositories")
18
- expect(json["datePublished"]).to eq("2016")
19
- expect(json["publisher"]).to eq("KNB Data Repository")
20
- end
7
+ # it "SoftwareSourceCode DataCite JSON" do
8
+ # input = fixture_path + "datacite_software.json"
9
+ # subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
10
+ # expect(subject.valid?).to be true
11
+ # json = JSON.parse(subject.codemeta)
12
+ # expect(json["@context"]).to eq("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
13
+ # expect(json["@id"]).to eq("https://doi.org/10.5063/f1m61h5x")
14
+ # expect(json["@type"]).to eq("SoftwareSourceCode")
15
+ # expect(json["identifier"]).to eq("https://doi.org/10.5063/f1m61h5x")
16
+ # expect(json["agents"]).to eq("type"=>"Person", "name"=>"Matthew B. Jones", "givenName"=>"Matthew B.", "familyName"=>"Jones")
17
+ # expect(json["title"]).to eq("dataone: R interface to the DataONE network of data repositories")
18
+ # expect(json["datePublished"]).to eq("2016")
19
+ # expect(json["publisher"]).to eq("KNB Data Repository")
20
+ # end
21
21
 
22
22
  it "SoftwareSourceCode DataCite" do
23
23
  input = "https://doi.org/10.5063/f1m61h5x"
@@ -28,7 +28,7 @@ describe Bolognese::Metadata, vcr: true do
28
28
  expect(json["@id"]).to eq("https://doi.org/10.5063/f1m61h5x")
29
29
  expect(json["@type"]).to eq("SoftwareSourceCode")
30
30
  expect(json["identifier"]).to eq("https://doi.org/10.5063/f1m61h5x")
31
- expect(json["agents"]).to eq("name"=>"Jones, Matthew B.; Slaughter, Peter; Nahf, Rob; Boettiger, Carl ; Jones, Chris; Read, Jordan; Walker, Lauren; Hart, Edmund; Chamberlain, Scott")
31
+ expect(json["agents"]).to eq([{"name"=>"Jones, Matthew B.; Slaughter, Peter; Nahf, Rob; Boettiger, Carl ; Jones, Chris; Read, Jordan; Walker, Lauren; Hart, Edmund; Chamberlain, Scott"}])
32
32
  expect(json["title"]).to eq("dataone: R interface to the DataONE network of data repositories")
33
33
  expect(json["datePublished"]).to eq("2016")
34
34
  expect(json["publisher"]).to eq("KNB Data Repository")
@@ -10,14 +10,14 @@ describe Bolognese::Metadata, vcr: true do
10
10
  crosscite = JSON.parse(subject.crosscite)
11
11
  expect(crosscite.fetch("url")).to eq("https://elifesciences.org/articles/01567")
12
12
  expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"JournalArticle", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
13
- expect(crosscite.fetch("title")).to eq([{"text"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
13
+ expect(crosscite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
14
14
  expect(crosscite.fetch("related_identifiers").length).to eq(27)
15
- expect(crosscite.fetch("related_identifiers").first).to eq("id"=>"2050-084X", "related_identifier_type"=>"ISSN", "relation_type"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical")
16
- expect(crosscite.fetch("related_identifiers").last).to eq( +"id" => "10.1038/ncb2764",
15
+ expect(crosscite.fetch("related_identifiers").first).to eq("related_identifier"=>"2050-084X", "related_identifier_type"=>"ISSN", "relation_type"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical")
16
+ expect(crosscite.fetch("related_identifiers").last).to eq("related_identifier" => "10.1038/ncb2764",
17
17
  "related_identifier_type" => "DOI",
18
18
  "relation_type" => "References",
19
19
  "title" => "A screen for morphological complexity identifies regulators of switch-like transitions between discrete cell shapes")
20
- expect(crosscite.fetch("rights")).to eq([{"id"=>"http://creativecommons.org/licenses/by/3.0"}])
20
+ expect(crosscite.fetch("rights_list")).to eq([{"rights_uri"=>"http://creativecommons.org/licenses/by/3.0"}])
21
21
  end
22
22
 
23
23
  it "with ORCID ID" do
@@ -41,8 +41,8 @@ describe Bolognese::Metadata, vcr: true do
41
41
  subject = Bolognese::Metadata.new(input: input, from: "bibtex")
42
42
  crosscite = JSON.parse(subject.crosscite)
43
43
  expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"JournalArticle", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
44
- expect(crosscite.fetch("title")).to eq([{"text"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
45
- expect(crosscite.dig("description", 0, "text")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
44
+ expect(crosscite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
45
+ expect(crosscite.dig("descriptions", 0, "description")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
46
46
  expect(crosscite.fetch("creator").count).to eq(5)
47
47
  expect(crosscite.fetch("creator").first).to eq("type"=>"Person", "name"=>"Martial Sankar", "givenName"=>"Martial", "familyName"=>"Sankar")
48
48
  end
@@ -53,16 +53,16 @@ describe Bolognese::Metadata, vcr: true do
53
53
  expect(subject.valid?).to be true
54
54
  crosscite = JSON.parse(subject.crosscite)
55
55
  expect(crosscite["types"]).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
56
- expect(crosscite.fetch("title")).to eq([{"text"=>"Eating your own Dog Food"}])
57
- expect(crosscite.dig("description", 0, "text")).to start_with("Eating your own dog food")
58
- expect(crosscite.fetch("creator")).to eq("type"=>"Person", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
56
+ expect(crosscite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
57
+ expect(crosscite.dig("descriptions", 0, "description")).to start_with("Eating your own dog food")
58
+ expect(crosscite.fetch("creator")).to eq([{"type"=>"Person", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
59
59
  end
60
60
 
61
61
  it "rdataone" do
62
62
  input = fixture_path + 'codemeta.json'
63
63
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
64
64
  crosscite = JSON.parse(subject.crosscite)
65
- expect(crosscite["title"]).to eq([{"text"=>"R Interface to the DataONE REST API"}])
65
+ expect(crosscite["titles"]).to eq([{"title"=>"R Interface to the DataONE REST API"}])
66
66
  expect(crosscite["creator"].length).to eq(3)
67
67
  expect(crosscite["creator"].last).to eq("type"=>"Organization", "name"=>"University Of California, Santa Barbara")
68
68
  expect(crosscite["version"]).to eq("2.0.0")
@@ -73,7 +73,7 @@ describe Bolognese::Metadata, vcr: true do
73
73
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
74
74
  crosscite = JSON.parse(subject.crosscite)
75
75
  expect(crosscite.fetch("url")).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
76
- expect(crosscite.fetch("title")).to eq([{"text"=>"Data from: A new malaria agent in African hominids."}])
76
+ expect(crosscite.fetch("titles")).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
77
77
  expect(crosscite.fetch("creator").length).to eq(8)
78
78
  expect(crosscite.fetch("creator").first).to eq("type"=>"Person", "familyName" => "Ollomo", "givenName" => "Benjamin", "name" => "Benjamin Ollomo")
79
79
  expect(crosscite.fetch("dates")).to eq([{"date"=>"2011", "date_type"=>"Issued"}])
@@ -86,8 +86,8 @@ describe Bolognese::Metadata, vcr: true do
86
86
  input = "https://github.com/datacite/maremma"
87
87
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
88
88
  crosscite = JSON.parse(subject.crosscite)
89
- expect(crosscite.fetch("title")).to eq( [{"text"=>"Maremma: a Ruby library for simplified network calls"}])
90
- expect(crosscite.fetch("creator")).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
89
+ expect(crosscite.fetch("titles")).to eq( [{"title"=>"Maremma: a Ruby library for simplified network calls"}])
90
+ expect(crosscite.fetch("creator")).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "type"=>"Person"}])
91
91
  end
92
92
 
93
93
  it "with data citation schema.org" do
@@ -95,10 +95,10 @@ describe Bolognese::Metadata, vcr: true do
95
95
  subject = Bolognese::Metadata.new(input: input, from: "schema_org")
96
96
  expect(subject.valid?).to be true
97
97
  crosscite = JSON.parse(subject.crosscite)
98
- expect(crosscite.fetch("title")).to eq([{"text"=>"Eating your own Dog Food"}])
98
+ expect(crosscite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
99
99
  expect(crosscite.fetch("related_identifiers").count).to eq(3)
100
- expect(crosscite.fetch("related_identifiers").first).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text", "title"=>"DataCite Blog")
101
- expect(crosscite.fetch("related_identifiers").last).to eq("id"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
100
+ expect(crosscite.fetch("related_identifiers").first).to eq("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text", "title"=>"DataCite Blog")
101
+ expect(crosscite.fetch("related_identifiers").last).to eq("related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
102
102
  end
103
103
  end
104
104
  end
@@ -9,11 +9,11 @@ describe Bolognese::Metadata, vcr: true do
9
9
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
10
10
  datacite = JSON.parse(subject.datacite_json)
11
11
  expect(datacite.fetch("url")).to eq("https://elifesciences.org/articles/01567")
12
- expect(datacite.fetch("resource-type-general")).to eq("Text")
13
- expect(datacite.fetch("title")).to eq([{"text"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
12
+ expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource-type"=>"JournalArticle", "resource-type-general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
13
+ expect(datacite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
14
14
  expect(datacite.fetch("related-identifiers").length).to eq(27)
15
- expect(datacite.fetch("related-identifiers").first).to eq("id"=>"2050-084X", "related_identifier_type"=>"ISSN", "relation_type"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical")
16
- expect(datacite.fetch("rights")).to eq([{"id"=>"http://creativecommons.org/licenses/by/3.0"}])
15
+ expect(datacite.fetch("related-identifiers").first).to eq("related-identifier"=>"2050-084X", "related-identifier-type"=>"ISSN", "relation-type"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical")
16
+ expect(datacite.fetch("rights-list")).to eq([{"rights-uri"=>"http://creativecommons.org/licenses/by/3.0"}])
17
17
  end
18
18
 
19
19
  it "with ORCID ID" do
@@ -21,7 +21,7 @@ describe Bolognese::Metadata, vcr: true do
21
21
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
22
22
  datacite = JSON.parse(subject.datacite_json)
23
23
  expect(datacite.fetch("url")).to eq("http://www.hindawi.com/journals/pm/2012/291294/")
24
- expect(datacite.fetch("resource-type-general")).to eq("Text")
24
+ expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource-type"=>"JournalArticle", "resource-type-general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
25
25
  expect(datacite.fetch("creator").length).to eq(7)
26
26
  expect(datacite.fetch("creator").first).to eq("type"=>"Person", "name"=>"Wendy Thanassi", "givenName"=>"Wendy", "familyName"=>"Thanassi")
27
27
  end
@@ -30,9 +30,9 @@ describe Bolognese::Metadata, vcr: true do
30
30
  input = fixture_path + "crossref.bib"
31
31
  subject = Bolognese::Metadata.new(input: input, from: "bibtex")
32
32
  datacite = JSON.parse(subject.datacite_json)
33
- expect(datacite.fetch("resource-type-general")).to eq("Text")
34
- expect(datacite.fetch("title")).to eq([{"text"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
35
- expect(datacite.dig("description", 0, "text")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
33
+ expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource-type"=>"JournalArticle", "resource-type-general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
34
+ expect(datacite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
35
+ expect(datacite.dig("descriptions", 0, "description")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
36
36
  expect(datacite.fetch("creator").length).to eq(5)
37
37
  expect(datacite.fetch("creator").first).to eq("type"=>"Person", "name"=>"Martial Sankar", "givenName"=>"Martial", "familyName"=>"Sankar")
38
38
  end
@@ -41,17 +41,17 @@ describe Bolognese::Metadata, vcr: true do
41
41
  input = fixture_path + "citeproc.json"
42
42
  subject = Bolognese::Metadata.new(input: input, from: "citeproc")
43
43
  datacite = JSON.parse(subject.datacite_json)
44
- expect(datacite.fetch("resource-type-general")).to eq("Text")
45
- expect(datacite.fetch("title")).to eq([{"text"=>"Eating your own Dog Food"}])
46
- expect(datacite.dig("description", 0, "text")).to start_with("Eating your own dog food")
47
- expect(datacite.fetch("creator")).to eq("type"=>"Person", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
44
+ expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource-type-general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
45
+ expect(datacite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
46
+ expect(datacite.dig("descriptions", 0, "description")).to start_with("Eating your own dog food")
47
+ expect(datacite.fetch("creator")).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "name"=>"Martin Fenner", "type"=>"Person"}])
48
48
  end
49
49
 
50
50
  it "rdataone" do
51
51
  input = fixture_path + 'codemeta.json'
52
52
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
53
53
  datacite = JSON.parse(subject.datacite_json)
54
- expect(datacite.fetch("title")).to eq([{"text"=>"R Interface to the DataONE REST API"}])
54
+ expect(datacite.fetch("titles")).to eq([{"title"=>"R Interface to the DataONE REST API"}])
55
55
  expect(datacite.fetch("creator").length).to eq(3)
56
56
  expect(datacite.fetch("creator").first).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Matt Jones", "givenName"=>"Matt", "familyName"=>"Jones")
57
57
  expect(datacite.fetch("version")).to eq("2.0.0")
@@ -61,8 +61,8 @@ describe Bolognese::Metadata, vcr: true do
61
61
  input = "https://github.com/datacite/maremma"
62
62
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
63
63
  datacite = JSON.parse(subject.datacite_json)
64
- expect(datacite.fetch("title")).to eq([{"text"=>"Maremma: a Ruby library for simplified network calls"}])
65
- expect(datacite.fetch("creator")).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner")
64
+ expect(datacite.fetch("titles")).to eq([{"title"=>"Maremma: a Ruby library for simplified network calls"}])
65
+ expect(datacite.fetch("creator")).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-0077-4738", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
66
66
  end
67
67
 
68
68
  it "with data citation schema.org" do
@@ -70,9 +70,9 @@ describe Bolognese::Metadata, vcr: true do
70
70
  subject = Bolognese::Metadata.new(input: input, from: "schema_org")
71
71
  expect(subject.valid?).to be true
72
72
  datacite = JSON.parse(subject.datacite_json)
73
- expect(datacite.fetch("title")).to eq([{"text"=>"Eating your own Dog Food"}])
73
+ expect(datacite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
74
74
  expect(datacite.fetch("related-identifiers").count).to eq(3)
75
- expect(datacite.fetch("related-identifiers").first).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text", "title"=>"DataCite Blog")
75
+ expect(datacite.fetch("related-identifiers").first).to eq("related-identifier"=>"10.5438/0000-00ss", "related-identifier-type"=>"DOI", "relation-type"=>"IsPartOf", "resource-type-general"=>"Text", "title"=>"DataCite Blog")
76
76
  end
77
77
  end
78
78
  end