bolognese 1.0.7 → 1.0.8

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bolognese/datacite_utils.rb +23 -23
  4. data/lib/bolognese/metadata.rb +5 -1
  5. data/lib/bolognese/metadata_utils.rb +10 -14
  6. data/lib/bolognese/readers/bibtex_reader.rb +9 -9
  7. data/lib/bolognese/readers/citeproc_reader.rb +12 -12
  8. data/lib/bolognese/readers/codemeta_reader.rb +12 -12
  9. data/lib/bolognese/readers/crossref_reader.rb +27 -29
  10. data/lib/bolognese/readers/datacite_json_reader.rb +19 -28
  11. data/lib/bolognese/readers/datacite_reader.rb +37 -37
  12. data/lib/bolognese/readers/ris_reader.rb +9 -9
  13. data/lib/bolognese/readers/schema_org_reader.rb +37 -32
  14. data/lib/bolognese/utils.rb +31 -34
  15. data/lib/bolognese/version.rb +1 -1
  16. data/lib/bolognese/writers/codemeta_writer.rb +1 -1
  17. data/lib/bolognese/writers/crosscite_writer.rb +1 -1
  18. data/lib/bolognese/writers/datacite_json_writer.rb +10 -10
  19. data/lib/bolognese/writers/jats_writer.rb +1 -1
  20. data/lib/bolognese/writers/ris_writer.rb +1 -1
  21. data/lib/bolognese/writers/schema_org_writer.rb +6 -6
  22. data/spec/datacite_utils_spec.rb +1 -1
  23. data/spec/fixtures/crosscite.json +8 -8
  24. data/spec/fixtures/datacite.json +22 -22
  25. data/spec/readers/bibtex_reader_spec.rb +6 -6
  26. data/spec/readers/citeproc_reader_spec.rb +2 -2
  27. data/spec/readers/codemeta_reader_spec.rb +8 -8
  28. data/spec/readers/crosscite_reader_spec.rb +4 -4
  29. data/spec/readers/crossref_reader_spec.rb +56 -59
  30. data/spec/readers/datacite_json_reader_spec.rb +7 -7
  31. data/spec/readers/datacite_reader_spec.rb +193 -194
  32. data/spec/readers/ris_reader_spec.rb +5 -5
  33. data/spec/readers/schema_org_reader_spec.rb +31 -32
  34. data/spec/utils_spec.rb +4 -4
  35. data/spec/writers/crosscite_writer_spec.rb +10 -13
  36. data/spec/writers/datacite_json_writer_spec.rb +9 -9
  37. data/spec/writers/datacite_writer_spec.rb +24 -26
  38. data/spec/writers/schema_org_writer_spec.rb +2 -2
  39. metadata +2 -2
@@ -29,7 +29,7 @@ describe Bolognese::Metadata, vcr: true do
29
29
  it "Crossref DOI" do
30
30
  expect(subject.valid?).to be true
31
31
  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
32
- expect(subject.types).to eq("citeproc"=>"misc", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
32
+ expect(subject.types).to eq("citeproc"=>"misc", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
33
33
  expect(subject.url).to eq("http://elifesciences.org/lookup/doi/10.7554/eLife.01567")
34
34
  expect(subject.creator.length).to eq(5)
35
35
  expect(subject.creator.first).to eq("type"=>"Person",
@@ -38,9 +38,9 @@ describe Bolognese::Metadata, vcr: true do
38
38
  "familyName"=>"Sankar")
39
39
  expect(subject.titles).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
40
40
  expect(subject.descriptions.first["description"]).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
41
- expect(subject.dates).to eq([{"date"=>"2014", "date_type"=>"Issued"}])
41
+ expect(subject.dates).to eq([{"date"=>"2014", "dateType"=>"Issued"}])
42
42
  expect(subject.publication_year).to eq("2014")
43
- expect(subject.related_identifiers).to eq([{"id"=>"2050084X", "related_identifier_type"=>"ISSN", "relation_type"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical"}])
43
+ expect(subject.related_identifiers).to eq([{"id"=>"2050084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "title"=>"eLife", "type"=>"Periodical"}])
44
44
  expect(subject.periodical).to eq("id"=>"2050084X", "title"=>"eLife", "type"=>"Periodical")
45
45
  end
46
46
 
@@ -51,11 +51,11 @@ describe Bolognese::Metadata, vcr: true do
51
51
  expect(subject.valid?).to be false
52
52
  expect(subject.state).to eq("not_found")
53
53
  expect(subject.identifier).to eq("https://doi.org/10.7554/elife.01567")
54
- expect(subject.types).to eq("citeproc"=>"misc", "resource_type_general"=>"Text", "ris"=>"THES", "type"=>"Thesis")
54
+ expect(subject.types).to eq("citeproc"=>"misc", "resourceTypeGeneral"=>"Text", "ris"=>"THES", "schemaOrg"=>"Thesis")
55
55
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Y. Toparlar", "givenName"=>"Y.", "familyName"=>"Toparlar"}])
56
56
  expect(subject.titles).to eq([{"title"=>"A multiscale analysis of the urban heat island effect"}])
57
57
  expect(subject.descriptions.first["description"]).to start_with("Designing the climates of cities")
58
- expect(subject.dates).to eq([{"date"=>"2018-04-25", "date_type"=>"Issued"}, {"date"=>"2018-04-25", "date_type"=>"Created"}])
58
+ expect(subject.dates).to eq([{"date"=>"2018-04-25", "dateType"=>"Issued"}, {"date"=>"2018-04-25", "dateType"=>"Created"}])
59
59
  expect(subject.publication_year).to eq("2018")
60
60
  end
61
61
  end
@@ -21,15 +21,15 @@ describe Bolognese::Metadata, vcr: true do
21
21
  expect(subject.valid?).to be true
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
- expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
24
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
25
25
  expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
26
26
  expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
27
27
  expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
28
28
  expect(subject.subjects).to eq([{"subject"=>"datacite"}, {"subject"=>"doi"}, {"subject"=>"metadata"}, {"subject"=>"featured"}])
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"}])
29
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "dateType"=>"Issued"}, {"date"=>"2016-12-20", "dateType"=>"Created"}, {"date"=>"2016-12-20", "dateType"=>"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("related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
32
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5438/55e5-t5c0", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
33
33
  expect(subject.publisher).to eq("DataCite")
34
34
  end
35
35
 
@@ -39,7 +39,7 @@ describe Bolognese::Metadata, vcr: true do
39
39
  expect(subject.identifier).to eq("https://doi.org/10.5438/0000-00ss")
40
40
  expect(subject.doi).to eq("10.5438/0000-00ss")
41
41
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
42
- expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
42
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
43
43
  end
44
44
 
45
45
  it "zenodo" do
@@ -50,7 +50,7 @@ describe Bolognese::Metadata, vcr: true do
50
50
  expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.1196821")
51
51
  expect(subject.doi).to eq("10.5281/zenodo.1196821")
52
52
  expect(subject.url).to eq("https://zenodo.org/record/1196821")
53
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
53
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
54
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")
@@ -63,7 +63,7 @@ describe Bolognese::Metadata, vcr: true do
63
63
  expect(subject.identifier).to eq("https://doi.org/10.1594/pangaea.836178")
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
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
66
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
67
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")
@@ -90,7 +90,7 @@ describe Bolognese::Metadata, vcr: true do
90
90
  expect(subject.valid?).to be true
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
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
93
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
94
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
96
  expect(subject.creator).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)"}])
@@ -103,7 +103,7 @@ describe Bolognese::Metadata, vcr: true do
103
103
  expect(subject.valid?).to be true
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
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
106
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
107
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
109
  expect(subject.creator).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)"}])
@@ -117,15 +117,15 @@ describe Bolognese::Metadata, vcr: true do
117
117
  expect(subject.valid?).to be true
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
- expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
120
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
121
121
  expect(subject.creator).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
122
122
  expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
123
123
  expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
124
124
  expect(subject.subjects).to eq([{"subject"=>"datacite"}, {"subject"=>"doi"}, {"subject"=>"metadata"}, {"subject"=>"featured"}])
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"}])
125
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "dateType"=>"Issued"}, {"date"=>"2016-12-20", "dateType"=>"Created"}, {"date"=>"2016-12-20", "dateType"=>"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("related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
128
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5438/55e5-t5c0", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
129
129
  expect(subject.publisher).to eq("DataCite")
130
130
  end
131
131
 
@@ -135,40 +135,39 @@ 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([{"alternate_identifier"=>"687610993", "alternate_identifier_type"=>"md5"}])
138
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"687610993", "alternateIdentifierType"=>"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
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"Gene expression matrices", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
141
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"Gene expression matrices", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
142
142
  expect(subject.creator).to eq([{"name"=>"The GTEx Consortium", "type"=>"Organization"}])
143
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
145
  expect(subject.subjects).to eq([{"subject"=>"gtex"}, {"subject"=>"annotation"}, {"subject"=>"phenotype"}, {"subject"=>"gene regulation"}, {"subject"=>"transcriptomics"}])
146
- expect(subject.dates).to eq([{"date"=>"2017", "date_type"=>"Issued"}])
146
+ expect(subject.dates).to eq([{"date"=>"2017", "dateType"=>"Issued"}])
147
147
  expect(subject.publication_year).to eq("2017")
148
148
  expect(subject.periodical).to eq("title"=>"GTEx", "type"=>"DataCatalog")
149
149
  expect(subject.publisher).to eq("GTEx")
150
150
  expect(subject.funding_references.length).to eq(7)
151
- expect(subject.funding_references.first).to eq("funder_identifier"=>"https://doi.org/10.13039/100000052", "funder_identifier_type"=>"Crossref Funder ID", "funder_name"=>"Common Fund of the Office of the Director of the NIH")
151
+ expect(subject.funding_references.first).to eq("funderIdentifier"=>"https://doi.org/10.13039/100000052", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"Common Fund of the Office of the Director of the NIH")
152
152
  end
153
153
 
154
154
  it "TOPMed dataset" do
155
155
  input = fixture_path + 'schema_org_topmed.json'
156
156
  subject = Bolognese::Metadata.new(input: input)
157
-
158
157
  expect(subject.valid?).to be true
159
158
  expect(subject.identifier).to eq("https://doi.org/10.23725/8na3-9s47")
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"}])
159
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"3b33f6b9338fccab0901b7d317577ea3","alternateIdentifierType"=>"md5"},{"alternateIdentifier"=>"ark:/99999/fk41CrU4eszeLUDe","alternateIdentifierType"=>"minid"},{"alternateIdentifier"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7", "alternateIdentifierType"=>"dataguid"}])
161
160
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/8na3-9s47")
162
161
  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
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"CRAM file", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
162
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"CRAM file", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
164
163
  expect(subject.creator).to eq([{"name"=>"TOPMed IRC", "type"=>"Organization"}])
165
164
  expect(subject.titles).to eq([{"title"=>"NWD165827.recab.cram"}])
166
165
  expect(subject.subjects).to eq([{"subject"=>"topmed"}, {"subject"=>"whole genome sequencing"}])
167
- expect(subject.dates).to eq([{"date"=>"2017-11-30", "date_type"=>"Issued"}])
166
+ expect(subject.dates).to eq([{"date"=>"2017-11-30", "dateType"=>"Issued"}])
168
167
  expect(subject.publication_year).to eq("2017")
169
168
  expect(subject.publisher).to eq("TOPMed")
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
- 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)"}])
169
+ expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"10.23725/2g4s-qv04", "relatedIdentifierType"=>"DOI", "relationType"=>"References", "resourceTypeGeneral"=>"Dataset"}])
170
+ expect(subject.funding_references).to eq([{"funderIdentifier"=>"https://doi.org/10.13039/100000050", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"National Heart, Lung, and Blood Institute (NHLBI)"}])
172
171
  end
173
172
 
174
173
  it "geolocation" do
@@ -177,7 +176,7 @@ describe Bolognese::Metadata, vcr: true do
177
176
 
178
177
  expect(subject.valid?).to be true
179
178
  expect(subject.identifier).to eq("https://doi.org/10.6071/z7wc73")
180
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
179
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
181
180
  expect(subject.creator.length).to eq(6)
182
181
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
183
182
  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"}])
@@ -189,11 +188,11 @@ describe Bolognese::Metadata, vcr: true do
189
188
  {"subject"=>"water balance"},
190
189
  {"subject"=>"Nevada"},
191
190
  {"subject"=>"Sierra (mountain range)"}])
192
- expect(subject.dates).to eq([{"date"=>"2013", "date_type"=>"Issued"}, {"date"=>"2014-10-17", "date_type"=>"Updated"}])
191
+ expect(subject.dates).to eq([{"date"=>"2013", "dateType"=>"Issued"}, {"date"=>"2014-10-17", "dateType"=>"Updated"}])
193
192
  expect(subject.publication_year).to eq("2013")
194
193
  expect(subject.publisher).to eq("UC Merced")
195
- expect(subject.funding_references).to eq([{"funder_name"=>"National Science Foundation, Division of Earth Sciences, Critical Zone Observatories"}])
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"}}])
194
+ expect(subject.funding_references).to eq([{"funderName"=>"National Science Foundation, Division of Earth Sciences, Critical Zone Observatories"}])
195
+ expect(subject.geo_locations).to eq([{"geoLocationPlace"=>"Providence Creek (Lower, Upper and P301)", "geoLocationPoint"=>{"pointLatitude"=>"37.047756", "pointLongitude"=>"-119.221094"}}])
197
196
  end
198
197
 
199
198
  it "geolocation geoshape" do
@@ -202,14 +201,14 @@ describe Bolognese::Metadata, vcr: true do
202
201
 
203
202
  expect(subject.valid?).to be true
204
203
  expect(subject.identifier).to eq("https://doi.org/10.1594/pangaea.842237")
205
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
204
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
206
205
  expect(subject.creator.length).to eq(2)
207
206
  expect(subject.creator.first).to eq("name"=>"Tara Oceans Consortium, Coordinators", "type"=>"Organization")
208
207
  expect(subject.titles).to eq([{"title"=>"Registry of all stations from the Tara Oceans Expedition (2009-2013)"}])
209
- expect(subject.dates).to eq([{"date"=>"2015-02-03", "date_type"=>"Issued"}])
208
+ expect(subject.dates).to eq([{"date"=>"2015-02-03", "dateType"=>"Issued"}])
210
209
  expect(subject.publication_year).to eq("2015")
211
210
  expect(subject.publisher).to eq("PANGAEA")
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"}}])
211
+ expect(subject.geo_locations).to eq([{"geoLocationBox"=>{"eastBoundLongitude"=>"174.9006", "northBoundLatitude"=>"79.6753", "southBoundLatitude"=>"-64.3088", "westBoundLongitude"=>"-168.5182"}}])
213
212
  end
214
213
 
215
214
  it "schema_org list" do
@@ -218,17 +217,17 @@ describe Bolognese::Metadata, vcr: true do
218
217
  subject = Bolognese::Metadata.new(input: input)
219
218
  expect(subject.valid?).to be true
220
219
  expect(subject.identifier).to eq("https://doi.org/10.23725/7jg3-v803")
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"}])
220
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"ark:/99999/fk4E1n6n1YHKxPk","alternateIdentifierType"=>"minid"},{"alternateIdentifier"=>"dg.4503/01b048d0-e128-4cb0-94e9-b2d2cab7563d","alternateIdentifierType"=>"dataguid"},{"alternateIdentifier"=>"f9e72bdf25bf4b4f0e581d9218fec2eb","alternateIdentifierType"=>"md5"}])
222
221
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.23725/7jg3-v803")
223
222
  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"])
224
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"CRAM file", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
223
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"CRAM file", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
225
224
  expect(subject.creator).to eq([{"name"=>"TOPMed", "type"=>"Organization"}])
226
225
  expect(subject.titles).to eq([{"title"=>"NWD100953.recab.cram"}])
227
226
  expect(subject.subjects).to eq([{"subject"=>"topmed"}, {"subject"=>"whole genome sequencing"}])
228
- expect(subject.dates).to eq([{"date"=>"2017-11-30", "date_type"=>"Issued"}])
227
+ expect(subject.dates).to eq([{"date"=>"2017-11-30", "dateType"=>"Issued"}])
229
228
  expect(subject.publication_year).to eq("2017")
230
229
  expect(subject.publisher).to eq("TOPMed")
231
- 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)"}])
230
+ expect(subject.funding_references).to eq([{"funderIdentifier"=>"https://doi.org/10.13039/100000050", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"National Heart, Lung, and Blood Institute (NHLBI)"}])
232
231
  end
233
232
  end
234
233
  end
data/spec/utils_spec.rb CHANGED
@@ -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([{"related_identifier"=>"10.5438/0012", "related_identifier_type"=>"DOI"}, {"related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI"}])
198
+ expect(response).to eq([{"relatedIdentifier"=>"10.5438/0012", "relatedIdentifierType"=>"DOI"}, {"relatedIdentifier"=>"10.5438/55e5-t5c0", "relatedIdentifierType"=>"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("related_identifier"=>"https://blog.datacite.org/eating-your-own-dog-food", "related_identifier_type"=>"URL")
204
+ expect(response).to eq("relatedIdentifier"=>"https://blog.datacite.org/eating-your-own-dog-food", "relatedIdentifierType"=>"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 = [{"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"}]
241
+ alternate_identifiers = [{"alternateIdentifierType"=>"md5", "alternateIdentifier"=>"3b33f6b9338fccab0901b7d317577ea3"}, {"alternateIdentifierType"=>"minid", "alternateIdentifier"=>"ark:/99999/fk41CrU4eszeLUDe"}, {"alternateIdentifierType"=>"dataguid", "alternateIdentifier"=>"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",
@@ -326,7 +326,7 @@ describe Bolognese::Metadata, vcr: true do
326
326
 
327
327
  context "get_date" do
328
328
  it "publication date" do
329
- dates = [{ "date"=>"2016-12-20", "date_type" => "Issued" }]
329
+ dates = [{ "date"=>"2016-12-20", "dateType" => "Issued" }]
330
330
  response = subject.get_date(dates, "Issued")
331
331
  expect(response).to eq("2016-12-20")
332
332
  end
@@ -9,22 +9,19 @@ describe Bolognese::Metadata, vcr: true do
9
9
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
10
10
  crosscite = JSON.parse(subject.crosscite)
11
11
  expect(crosscite.fetch("url")).to eq("https://elifesciences.org/articles/01567")
12
- expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"JournalArticle", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
12
+ expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
13
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("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
- "related_identifier_type" => "DOI",
18
- "relation_type" => "References",
19
- "title" => "A screen for morphological complexity identifies regulators of switch-like transitions between discrete cell shapes")
20
- expect(crosscite.fetch("rights_list")).to eq([{"rights_uri"=>"http://creativecommons.org/licenses/by/3.0"}])
15
+ expect(crosscite.fetch("related_identifiers").first).to eq("relatedIdentifier"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
16
+ expect(crosscite.fetch("related_identifiers").last).to eq("relatedIdentifier"=>"10.1038/ncb2764", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
17
+ expect(crosscite.fetch("rights_list")).to eq([{"rightsUri"=>"http://creativecommons.org/licenses/by/3.0"}])
21
18
  end
22
19
 
23
20
  it "with ORCID ID" do
24
21
  input = "https://doi.org/10.1155/2012/291294"
25
22
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
26
23
  crosscite = JSON.parse(subject.crosscite)
27
- expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"JournalArticle", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
24
+ expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
28
25
  expect(crosscite.fetch("creator").count).to eq(7)
29
26
  expect(crosscite.fetch("creator")[2]).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-2043-4925", "name"=>"Beatriz Hernandez", "givenName"=>"Beatriz", "familyName"=>"Hernandez")
30
27
  end
@@ -40,7 +37,7 @@ describe Bolognese::Metadata, vcr: true do
40
37
  input = fixture_path + "crossref.bib"
41
38
  subject = Bolognese::Metadata.new(input: input, from: "bibtex")
42
39
  crosscite = JSON.parse(subject.crosscite)
43
- expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"JournalArticle", "resource_type_general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
40
+ expect(crosscite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"Text", "resource_type"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
44
41
  expect(crosscite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
45
42
  expect(crosscite.dig("descriptions", 0, "description")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
46
43
  expect(crosscite.fetch("creator").count).to eq(5)
@@ -52,7 +49,7 @@ describe Bolognese::Metadata, vcr: true do
52
49
  subject = Bolognese::Metadata.new(input: input, from: "citeproc")
53
50
  expect(subject.valid?).to be true
54
51
  crosscite = JSON.parse(subject.crosscite)
55
- expect(crosscite["types"]).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource_type_general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
52
+ expect(crosscite["types"]).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
56
53
  expect(crosscite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
57
54
  expect(crosscite.dig("descriptions", 0, "description")).to start_with("Eating your own dog food")
58
55
  expect(crosscite.fetch("creator")).to eq([{"type"=>"Person", "name"=>"Martin Fenner", "givenName"=>"Martin", "familyName"=>"Fenner"}])
@@ -76,7 +73,7 @@ describe Bolognese::Metadata, vcr: true do
76
73
  expect(crosscite.fetch("titles")).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
77
74
  expect(crosscite.fetch("creator").length).to eq(8)
78
75
  expect(crosscite.fetch("creator").first).to eq("type"=>"Person", "familyName" => "Ollomo", "givenName" => "Benjamin", "name" => "Benjamin Ollomo")
79
- expect(crosscite.fetch("dates")).to eq([{"date"=>"2011", "date_type"=>"Issued"}])
76
+ expect(crosscite.fetch("dates")).to eq([{"date"=>"2011", "dateType"=>"Issued"}])
80
77
  expect(crosscite.fetch("publication_year")).to eq("2011")
81
78
  expect(crosscite.fetch("provider_id")).to eq("DRYAD")
82
79
  expect(crosscite.fetch("client_id")).to eq("DRYAD.DRYAD")
@@ -97,8 +94,8 @@ describe Bolognese::Metadata, vcr: true do
97
94
  crosscite = JSON.parse(subject.crosscite)
98
95
  expect(crosscite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
99
96
  expect(crosscite.fetch("related_identifiers").count).to eq(3)
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")
97
+ expect(crosscite.fetch("related_identifiers").first).to eq("relatedIdentifier"=>"10.5438/0000-00ss", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Text")
98
+ expect(crosscite.fetch("related_identifiers").last).to eq("relatedIdentifier"=>"10.5438/55e5-t5c0", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
102
99
  end
103
100
  end
104
101
  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("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource-type"=>"JournalArticle", "resource-type-general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
12
+ expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
13
13
  expect(datacite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
14
- expect(datacite.fetch("related-identifiers").length).to eq(27)
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"}])
14
+ expect(datacite.fetch("relatedIdentifiers").length).to eq(27)
15
+ expect(datacite.fetch("relatedIdentifiers").first).to eq("relatedIdentifier"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
16
+ expect(datacite.fetch("rightsList")).to eq([{"rightsUri"=>"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("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource-type"=>"JournalArticle", "resource-type-general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
24
+ expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"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,7 +30,7 @@ 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("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource-type"=>"JournalArticle", "resource-type-general"=>"Text", "ris"=>"JOUR", "type"=>"ScholarlyArticle")
33
+ expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource-type"=>"JournalArticle", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
34
34
  expect(datacite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
35
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)
@@ -41,7 +41,7 @@ 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("types")).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resource-type-general"=>"Text", "ris"=>"GEN", "type"=>"BlogPosting")
44
+ expect(datacite.fetch("types")).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
45
45
  expect(datacite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
46
46
  expect(datacite.dig("descriptions", 0, "description")).to start_with("Eating your own dog food")
47
47
  expect(datacite.fetch("creator")).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "name"=>"Martin Fenner", "type"=>"Person"}])
@@ -71,8 +71,8 @@ describe Bolognese::Metadata, vcr: true do
71
71
  expect(subject.valid?).to be true
72
72
  datacite = JSON.parse(subject.datacite_json)
73
73
  expect(datacite.fetch("titles")).to eq([{"title"=>"Eating your own Dog Food"}])
74
- expect(datacite.fetch("related-identifiers").count).to eq(3)
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")
74
+ expect(datacite.fetch("relatedIdentifiers").count).to eq(3)
75
+ expect(datacite.fetch("relatedIdentifiers").first).to eq("relatedIdentifier"=>"10.5438/0000-00ss", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Text")
76
76
  end
77
77
  end
78
78
  end
@@ -12,7 +12,7 @@ describe Bolognese::Metadata, vcr: true do
12
12
  expect(datacite.dig("resourceType", "resourceTypeGeneral")).to eq("Text")
13
13
  expect(datacite.dig("titles", "title")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
14
14
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").length).to eq(27)
15
- expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").first).to eq("relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "__content__"=>"2050-084X")
15
+ expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").first).to eq("relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "__content__"=>"2050-084X", "resourceTypeGeneral"=>"Collection")
16
16
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier")[1]).to eq("relatedIdentifierType"=>"DOI", "relationType"=>"References", "__content__"=>"10.1038/nature02100")
17
17
  expect(datacite.dig("rightsList")).to eq("rights"=>{"rightsURI"=>"http://creativecommons.org/licenses/by/3.0"})
18
18
  expect(datacite.dig("fundingReferences", "fundingReference").count).to eq(4)
@@ -37,7 +37,7 @@ describe Bolognese::Metadata, vcr: true do
37
37
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
38
38
  expect(subject.valid?).to be true
39
39
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
40
- expect(datacite.dig("contributors", "contributor")).to eq("contributorName"=>{"__content__"=>"Janbon, Guilhem", "nameType"=>"Personal"}, "contributorType"=>"Other", "familyName"=>"Janbon", "givenName"=>"Guilhem")
40
+ expect(datacite.dig("contributors", "contributor")).to eq("contributorName"=>{"__content__"=>"Janbon, Guilhem", "nameType"=>"Personal"}, "contributorType"=>"Editor", "familyName"=>"Janbon", "givenName"=>"Guilhem")
41
41
  end
42
42
 
43
43
  it "Crossref DOI" do
@@ -103,15 +103,15 @@ describe Bolognese::Metadata, vcr: true do
103
103
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
104
104
  expect(subject.valid?).to be true
105
105
  expect(subject.identifier).to eq("https://doi.org/10.23640/07243.5153971")
106
- expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"Paper", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"ScholarlyArticle")
106
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"Paper", "resourceTypeGeneral"=>"Text", "ris"=>"RPRT", "schemaOrg"=>"ScholarlyArticle")
107
107
  expect(subject.creator.length).to eq(20)
108
108
  expect(subject.creator.first).to eq("type"=>"Person", "familyName" => "Paglione", "givenName" => "Laura", "id" => "https://orcid.org/0000-0003-3188-6273", "name" => "Laura Paglione")
109
109
  expect(subject.titles).to eq([{"title"=>"Recommendation of: ORCID Works Metadata Working Group"}])
110
- expect(subject.rights_list).to eq([{"rights_uri"=>"https://creativecommons.org/publicdomain/zero/1.0", "rights"=>"CC-0"}])
111
- expect(subject.dates).to eq([{"date"=>"2017-06-28", "date_type"=>"Created"}, {"date"=>"2017-06-28", "date_type"=>"Updated"}, {"date"=>"2017", "date_type"=>"Issued"}])
110
+ expect(subject.rights_list).to eq([{"rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0", "rights"=>"CC-0"}])
111
+ expect(subject.dates).to eq([{"date"=>"2017-06-28", "dateType"=>"Created"}, {"date"=>"2017-06-28", "dateType"=>"Updated"}, {"date"=>"2017", "dateType"=>"Issued"}])
112
112
  expect(subject.publication_year).to eq("2017")
113
113
  expect(subject.publisher).to eq("Figshare")
114
- expect(subject.service_provider).to eq("DataCite")
114
+ expect(subject.source).to eq("DataCite")
115
115
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
116
116
  expect(subject.datacite).to end_with("</resource>")
117
117
  end
@@ -121,15 +121,15 @@ describe Bolognese::Metadata, vcr: true do
121
121
  subject = Bolognese::Metadata.new(input: input, from: "datacite", doi: "10.5072/07243.5153971")
122
122
  expect(subject.valid?).to be true
123
123
  expect(subject.identifier).to eq("https://doi.org/10.5072/07243.5153971")
124
- expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"Paper", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"ScholarlyArticle")
124
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"Paper", "resourceTypeGeneral"=>"Text", "ris"=>"RPRT", "schemaOrg"=>"ScholarlyArticle")
125
125
  expect(subject.creator.length).to eq(20)
126
126
  expect(subject.creator.first).to eq("type"=>"Person", "familyName" => "Paglione", "givenName" => "Laura", "id" => "https://orcid.org/0000-0003-3188-6273", "name" => "Laura Paglione")
127
127
  expect(subject.titles).to eq([{"title"=>"Recommendation of: ORCID Works Metadata Working Group"}])
128
- expect(subject.rights_list).to eq([{"rights_uri"=>"https://creativecommons.org/publicdomain/zero/1.0", "rights"=>"CC-0"}])
129
- expect(subject.dates).to eq([{"date"=>"2017-06-28", "date_type"=>"Created"}, {"date"=>"2017-06-28", "date_type"=>"Updated"}, {"date"=>"2017", "date_type"=>"Issued"}])
128
+ expect(subject.rights_list).to eq([{"rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0", "rights"=>"CC-0"}])
129
+ expect(subject.dates).to eq([{"date"=>"2017-06-28", "dateType"=>"Created"}, {"date"=>"2017-06-28", "dateType"=>"Updated"}, {"date"=>"2017", "dateType"=>"Issued"}])
130
130
  expect(subject.publication_year).to eq("2017")
131
131
  expect(subject.publisher).to eq("Figshare")
132
- expect(subject.service_provider).to eq("DataCite")
132
+ expect(subject.source).to eq("DataCite")
133
133
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
134
134
  expect(subject.datacite).to end_with("</resource>")
135
135
  end
@@ -139,18 +139,18 @@ describe Bolognese::Metadata, vcr: true do
139
139
  subject = Bolognese::Metadata.new(input: input, from: "datacite", regenerate: true)
140
140
  expect(subject.valid?).to be true
141
141
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
142
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"DataPackage", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"Dataset")
142
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"DataPackage", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
143
143
  expect(subject.creator.length).to eq(8)
144
144
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
145
145
  expect(subject.titles).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
146
- 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"}])
147
- expect(subject.rights_list).to eq([{"rights_uri"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
148
- expect(subject.dates).to eq([{"date"=>"2011", "date_type"=>"Issued"}])
146
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=> "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.", "alternateIdentifierType"=>"citation"}])
147
+ expect(subject.rights_list).to eq([{"rightsUri"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
148
+ expect(subject.dates).to eq([{"date"=>"2011", "dateType"=>"Issued"}])
149
149
  expect(subject.publication_year).to eq("2011")
150
150
  expect(subject.related_identifiers.length).to eq(6)
151
- expect(subject.related_identifiers.last).to eq("related_identifier"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
151
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"19478877", "relatedIdentifierType"=>"PMID", "relationType"=>"IsSupplementTo")
152
152
  expect(subject.publisher).to eq("Dryad Digital Repository")
153
- expect(subject.service_provider).to eq("DataCite")
153
+ expect(subject.source).to eq("DataCite")
154
154
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
155
155
 
156
156
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
@@ -173,7 +173,7 @@ describe Bolognese::Metadata, vcr: true do
173
173
  expect(subject.valid?).to be false
174
174
  expect(subject.identifier).to eq("https://doi.org/10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
175
175
  expect(subject.doi).to eq("10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
176
- expect(subject.service_provider).to eq("DataCite")
176
+ expect(subject.source).to eq("DataCite")
177
177
  expect(subject.state).to eq("not_found")
178
178
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
179
179
  expect(datacite["identifier"]).to eq("identifierType"=>"DOI", "__content__"=>"10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
@@ -195,15 +195,15 @@ describe Bolognese::Metadata, vcr: true do
195
195
  input = "10.7554/eLife.01567"
196
196
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
197
197
  subject.doi = "10.5061/DRYAD.8515"
198
- subject.titles = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
199
- subject.types = { "type" => "Dataset", "resource_type_general" => "Dataset" }
198
+ subject.titles = [{ "title" => "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth" }]
199
+ subject.types = { "schemaOrg" => "Dataset", "resourceTypeGeneral" => "Dataset" }
200
200
  expect(subject.valid?).to be true
201
201
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
202
202
  expect(datacite.dig("identifier", "__content__")).to eq("10.5061/DRYAD.8515")
203
203
  expect(datacite.dig("resourceType", "resourceTypeGeneral")).to eq("Dataset")
204
204
  expect(datacite.dig("titles", "title")).to eq("Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
205
205
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").length).to eq(27)
206
- expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").first).to eq("relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "__content__"=>"2050-084X")
206
+ expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").first).to eq("__content__"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
207
207
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier")[1]).to eq("relatedIdentifierType"=>"DOI", "relationType"=>"References", "__content__"=>"10.1038/nature02100")
208
208
  expect(datacite.dig("rightsList")).to eq("rights"=>{"rightsURI"=>"http://creativecommons.org/licenses/by/3.0"})
209
209
  expect(datacite.dig("fundingReferences", "fundingReference").count).to eq(4)
@@ -232,12 +232,10 @@ describe Bolognese::Metadata, vcr: true do
232
232
  input = nil
233
233
  subject = Bolognese::Metadata.new(input: input, doi: "10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
234
234
  subject.creator = [{"creatorName"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}]
235
- subject.titles = [ "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth" ]
236
- subject.publisher = "Dryad"
237
- subject.types = "Dataset"
235
+ subject.titles = [{ "title" => "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth" }]
236
+ subject.types = { "schemaOrg" => "Dataset", "resourceTypeGeneral" => "Dataset" }
238
237
  subject.publication_year = "2011"
239
238
  subject.state = "findable"
240
- subject.types = { "type" => "Dataset", "resource_type_general" => "Dataset" }
241
239
  expect(subject.exists?).to be true
242
240
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
243
241
  expect(datacite.dig("identifier", "__content__")).to eq("10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
@@ -252,13 +250,13 @@ describe Bolognese::Metadata, vcr: true do
252
250
  subject.rights_list = [{ "rights_uri" => "https://creativecommons.org/licenses/by-nc-sa/4.0", "rights" => "Creative Commons Attribution-NonCommercial-ShareAlike" }]
253
251
  expect(subject.valid?).to be true
254
252
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
255
- expect(datacite.dig("rightsList", "rights")).to eq("rightsURI"=>"https://creativecommons.org/licenses/by-nc-sa/4.0", "__content__"=>"Creative Commons Attribution-NonCommercial-ShareAlike")
253
+ expect(datacite.dig("rightsList", "rights")).to eq("Creative Commons Attribution-NonCommercial-ShareAlike")
256
254
  end
257
255
 
258
256
  it "change license url" do
259
257
  input = "10.7554/eLife.01567"
260
258
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
261
- subject.rights_list = [{ "rights_uri" => "https://creativecommons.org/licenses/by-nc-sa/4.0" }]
259
+ subject.rights_list = [{ "rightsUri" => "https://creativecommons.org/licenses/by-nc-sa/4.0" }]
262
260
  expect(subject.valid?).to be true
263
261
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
264
262
  expect(datacite.dig("rightsList", "rights")).to eq("rightsURI"=>"https://creativecommons.org/licenses/by-nc-sa/4.0")