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
@@ -26,7 +26,7 @@ describe Bolognese::Metadata, vcr: true do
26
26
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
27
27
  expect(datacite.dig("resourceType", "resourceTypeGeneral")).to eq("Text")
28
28
  expect(datacite.dig("creators", "creator").count).to eq(7)
29
- expect(datacite.dig("creators", "creator")[2]).to eq("creatorName" => "Hernandez, Beatriz",
29
+ expect(datacite.dig("creators", "creator")[2]).to eq("creatorName" => {"__content__"=>"Hernandez, Beatriz", "nameType"=>"Personal"},
30
30
  "familyName" => "Hernandez",
31
31
  "givenName" => "Beatriz",
32
32
  "nameIdentifier" => {"schemeURI"=>"http://orcid.org/", "nameIdentifierScheme"=>"ORCID", "__content__"=>"http://orcid.org/0000-0003-2043-4925"})
@@ -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("contributorType"=>"Editor", "contributorName"=>"Janbon, Guilhem", "givenName"=>"Guilhem", "familyName"=>"Janbon")
40
+ expect(datacite.dig("contributors", "contributor")).to eq("contributorName"=>{"__content__"=>"Janbon, Guilhem", "nameType"=>"Personal"}, "contributorType"=>"Other", "familyName"=>"Janbon", "givenName"=>"Guilhem")
41
41
  end
42
42
 
43
43
  it "Crossref DOI" do
@@ -50,7 +50,7 @@ describe Bolognese::Metadata, vcr: true do
50
50
  expect(datacite.dig("descriptions", "description").first).to eq("__content__"=>"eLife", "descriptionType"=>"SeriesInformation")
51
51
  expect(datacite.dig("descriptions", "description", 1, "__content__")).to start_with("Among various advantages, their small size makes model organisms preferred subjects of investigation.")
52
52
  expect(datacite.dig("creators", "creator").count).to eq(5)
53
- expect(datacite.dig("creators", "creator").first).to eq("creatorName"=>"Sankar, Martial", "givenName"=>"Martial", "familyName"=>"Sankar")
53
+ expect(datacite.dig("creators", "creator").first).to eq("creatorName"=>{"__content__"=>"Sankar, Martial", "nameType"=>"Personal"}, "familyName"=>"Sankar", "givenName"=>"Martial")
54
54
  end
55
55
 
56
56
  it "BlogPosting Citeproc JSON" do
@@ -62,7 +62,7 @@ describe Bolognese::Metadata, vcr: true do
62
62
  expect(datacite.dig("titles", "title")).to eq("Eating your own Dog Food")
63
63
  expect(datacite.dig("descriptions", "description").first).to eq("__content__"=>"DataCite Blog", "descriptionType"=>"SeriesInformation")
64
64
  expect(datacite.dig("descriptions", "description", 1, "__content__")).to start_with("Eating your own dog food")
65
- expect(datacite.dig("creators", "creator")).to eq("creatorName"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
65
+ expect(datacite.dig("creators", "creator")).to eq("creatorName"=>{"__content__"=>"Fenner, Martin", "nameType"=>"Personal"}, "familyName"=>"Fenner", "givenName"=>"Martin")
66
66
  end
67
67
 
68
68
  it "rdataone" do
@@ -71,21 +71,21 @@ describe Bolognese::Metadata, vcr: true do
71
71
  expect(subject.valid?).to be true
72
72
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
73
73
  expect(datacite.dig("titles", "title")).to eq("R Interface to the DataONE REST API")
74
- expect(datacite.dig("creators", "creator")).to eq([{"creatorName"=>"Jones, Matt",
74
+ expect(datacite.dig("creators", "creator")).to eq([{"creatorName"=>{"__content__"=>"Jones, Matt", "nameType"=>"Personal"},
75
75
  "givenName"=>"Matt",
76
76
  "familyName"=>"Jones",
77
77
  "nameIdentifier"=>
78
78
  {"schemeURI"=>"http://orcid.org/",
79
79
  "nameIdentifierScheme"=>"ORCID",
80
80
  "__content__"=>"http://orcid.org/0000-0003-0077-4738"}},
81
- {"creatorName"=>"Slaughter, Peter",
81
+ {"creatorName"=>{"__content__"=>"Slaughter, Peter", "nameType"=>"Personal"},
82
82
  "givenName"=>"Peter",
83
83
  "familyName"=>"Slaughter",
84
84
  "nameIdentifier"=>
85
85
  {"schemeURI"=>"http://orcid.org/",
86
86
  "nameIdentifierScheme"=>"ORCID",
87
87
  "__content__"=>"http://orcid.org/0000-0002-2192-403X"}},
88
- {"creatorName"=>"University Of California, Santa Barbara"}])
88
+ {"creatorName"=>{"__content__"=>"University Of California, Santa Barbara", "nameType"=>"Organizational"}}])
89
89
  expect(datacite.fetch("version")).to eq("2.0.0")
90
90
  end
91
91
 
@@ -95,7 +95,7 @@ describe Bolognese::Metadata, vcr: true do
95
95
  expect(subject.valid?).to be true
96
96
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
97
97
  expect(datacite.dig("titles", "title")).to eq("Maremma: a Ruby library for simplified network calls")
98
- expect(datacite.dig("creators", "creator")).to eq("creatorName"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner", "nameIdentifier"=>{"schemeURI"=>"http://orcid.org/", "nameIdentifierScheme"=>"ORCID", "__content__"=>"http://orcid.org/0000-0003-0077-4738"})
98
+ expect(datacite.dig("creators", "creator")).to eq("creatorName"=> {"__content__"=>"Fenner, Martin", "nameType"=>"Personal"}, "givenName"=>"Martin", "familyName"=>"Fenner", "nameIdentifier"=>{"schemeURI"=>"http://orcid.org/", "nameIdentifierScheme"=>"ORCID", "__content__"=>"http://orcid.org/0000-0003-0077-4738"})
99
99
  end
100
100
 
101
101
  it "Text pass-thru" do
@@ -106,8 +106,8 @@ describe Bolognese::Metadata, vcr: true do
106
106
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"Paper", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"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
- expect(subject.title).to eq([{"text"=>"Recommendation of: ORCID Works Metadata Working Group"}])
110
- expect(subject.rights).to eq([{"id"=>"https://creativecommons.org/publicdomain/zero/1.0", "name"=>"CC-0"}])
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
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"}])
112
112
  expect(subject.publication_year).to eq("2017")
113
113
  expect(subject.publisher).to eq("Figshare")
@@ -124,8 +124,8 @@ describe Bolognese::Metadata, vcr: true do
124
124
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"Paper", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"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
- expect(subject.title).to eq([{"text"=>"Recommendation of: ORCID Works Metadata Working Group"}])
128
- expect(subject.rights).to eq([{"id"=>"https://creativecommons.org/publicdomain/zero/1.0", "name"=>"CC-0"}])
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
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"}])
130
130
  expect(subject.publication_year).to eq("2017")
131
131
  expect(subject.publisher).to eq("Figshare")
@@ -142,13 +142,13 @@ describe Bolognese::Metadata, vcr: true do
142
142
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resource_type"=>"DataPackage", "resource_type_general"=>"Dataset", "ris"=>"DATA", "type"=>"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
- expect(subject.title).to eq([{"text"=>"Data from: A new malaria agent in African hominids."}])
146
- expect(subject.alternate_identifiers).to eq("type"=>"citation", "name"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
147
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
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
148
  expect(subject.dates).to eq([{"date"=>"2011", "date_type"=>"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("id"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
151
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
152
152
  expect(subject.publisher).to eq("Dryad Digital Repository")
153
153
  expect(subject.service_provider).to eq("DataCite")
154
154
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -195,7 +195,7 @@ 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.title = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
198
+ subject.titles = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
199
199
  subject.types = { "type" => "Dataset", "resource_type_general" => "Dataset" }
200
200
  expect(subject.valid?).to be true
201
201
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
@@ -213,7 +213,7 @@ describe Bolognese::Metadata, vcr: true do
213
213
  it "change description" do
214
214
  input = "10.7554/eLife.01567"
215
215
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
216
- subject.description = "This is an abstract."
216
+ subject.descriptions = { "description" => "This is an abstract." }
217
217
  expect(subject.valid?).to be true
218
218
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
219
219
  expect(datacite.dig("descriptions", "description")).to eq([{"__content__"=>"eLife", "descriptionType"=>"SeriesInformation"}, {"__content__"=>"This is an abstract.", "descriptionType"=>"Abstract"}])
@@ -222,7 +222,7 @@ describe Bolognese::Metadata, vcr: true do
222
222
  it "change description no input" do
223
223
  input = nil
224
224
  subject = Bolognese::Metadata.new(input: input, from: "datacite", doi: "10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
225
- subject.description = "This is an abstract."
225
+ subject.descriptions = "This is an abstract."
226
226
  expect(subject.valid?).to be false
227
227
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
228
228
  expect(datacite.dig("descriptions", "description")).to eq("descriptionType"=>"Abstract", "__content__"=>"This is an abstract.")
@@ -232,7 +232,7 @@ 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.title = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
235
+ subject.titles = [ "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth" ]
236
236
  subject.publisher = "Dryad"
237
237
  subject.types = "Dataset"
238
238
  subject.publication_year = "2011"
@@ -249,7 +249,7 @@ describe Bolognese::Metadata, vcr: true do
249
249
  it "change license" do
250
250
  input = "10.7554/eLife.01567"
251
251
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
252
- subject.rights = { "id" => "https://creativecommons.org/licenses/by-nc-sa/4.0", "name" => "Creative Commons Attribution-NonCommercial-ShareAlike" }
252
+ subject.rights_list = [{ "rights_uri" => "https://creativecommons.org/licenses/by-nc-sa/4.0", "rights" => "Creative Commons Attribution-NonCommercial-ShareAlike" }]
253
253
  expect(subject.valid?).to be true
254
254
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
255
255
  expect(datacite.dig("rightsList", "rights")).to eq("rightsURI"=>"https://creativecommons.org/licenses/by-nc-sa/4.0", "__content__"=>"Creative Commons Attribution-NonCommercial-ShareAlike")
@@ -258,16 +258,16 @@ describe Bolognese::Metadata, vcr: true do
258
258
  it "change license url" do
259
259
  input = "10.7554/eLife.01567"
260
260
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
261
- subject.rights = "https://creativecommons.org/licenses/by-nc-sa/4.0"
261
+ subject.rights_list = [{ "rights_uri" => "https://creativecommons.org/licenses/by-nc-sa/4.0" }]
262
262
  expect(subject.valid?).to be true
263
263
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
264
- expect(datacite.dig("rightsList", "rights")).to eq("rightsURI"=>"https://creativecommons.org/licenses/by-nc-sa/4.0", "__content__"=>"https://creativecommons.org/licenses/by-nc-sa/4.0")
264
+ expect(datacite.dig("rightsList", "rights")).to eq("rightsURI"=>"https://creativecommons.org/licenses/by-nc-sa/4.0")
265
265
  end
266
266
 
267
267
  it "change license name" do
268
268
  input = "10.7554/eLife.01567"
269
269
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
270
- subject.rights = "Creative Commons Attribution-NonCommercial-ShareAlike"
270
+ subject.rights_list = [{ "rights" => "Creative Commons Attribution-NonCommercial-ShareAlike" }]
271
271
  expect(subject.valid?).to be true
272
272
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
273
273
  expect(datacite.dig("rightsList", "rights")).to eq("Creative Commons Attribution-NonCommercial-ShareAlike")
@@ -288,7 +288,7 @@ describe Bolognese::Metadata, vcr: true do
288
288
  input = "10.7554/eLife.01567"
289
289
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
290
290
  subject.doi = "123"
291
- subject.title = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
291
+ subject.titles = "Data from: Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
292
292
  subject.types = "Dataset"
293
293
  expect(subject.doi).to eq("123")
294
294
  expect(subject.valid?).to be false
@@ -303,7 +303,7 @@ describe Bolognese::Metadata, vcr: true do
303
303
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
304
304
  expect(datacite.dig("identifier", "__content__")).to eq("10.25491/d50j-3083")
305
305
  expect(datacite.dig("creators", "creator").count).to eq(1)
306
- expect(datacite.dig("creators", "creator")).to eq("creatorName"=>"The GTEx Consortium")
306
+ expect(datacite.dig("creators", "creator")).to eq("creatorName"=>{"__content__"=>"The GTEx Consortium", "nameType"=>"Organizational"})
307
307
  expect(datacite.dig("resourceType", "resourceTypeGeneral")).to eq("Dataset")
308
308
  expect(datacite.dig("resourceType", "__content__")).to eq("Gene expression matrices")
309
309
  expect(datacite.dig("titles", "title")).to eq("Fully processed, filtered and normalized gene expression matrices (in BED format) for each tissue, which were used as input into FastQTL for eQTL discovery")
@@ -66,6 +66,7 @@ describe Bolognese::Metadata, vcr: true do
66
66
  it "Crossref DOI" do
67
67
  input = fixture_path + "crossref.bib"
68
68
  subject = Bolognese::Metadata.new(input: input, from: "bibtex")
69
+
69
70
  ris = subject.ris.split("\r\n")
70
71
  expect(ris[0]).to eq("TY - JOUR")
71
72
  expect(ris[1]).to eq("T1 - Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
@@ -119,7 +120,7 @@ describe Bolognese::Metadata, vcr: true do
119
120
  input = fixture_path + "datacite.json"
120
121
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
121
122
  ris = subject.ris.split("\r\n")
122
- expect(ris[0]).to eq("TY - GEN")
123
+ expect(ris[0]).to eq("TY - RPRT")
123
124
  expect(ris[1]).to eq("T1 - Eating your own Dog Food")
124
125
  expect(ris[2]).to eq("AU - Fenner, Martin")
125
126
  expect(ris[3]).to eq("DO - 10.5438/4k3m-nyvg")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-11 00:00:00.000000000 Z
11
+ date: 2018-11-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma