bolognese 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
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