bolognese 1.11.5 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +5 -4
  3. data/bolognese.gemspec +1 -0
  4. data/lib/bolognese/datacite_utils.rb +17 -9
  5. data/lib/bolognese/metadata.rb +1 -1
  6. data/lib/bolognese/metadata_utils.rb +1 -1
  7. data/lib/bolognese/readers/bibtex_reader.rb +2 -2
  8. data/lib/bolognese/readers/citeproc_reader.rb +1 -1
  9. data/lib/bolognese/readers/codemeta_reader.rb +2 -2
  10. data/lib/bolognese/readers/crosscite_reader.rb +4 -1
  11. data/lib/bolognese/readers/crossref_reader.rb +3 -4
  12. data/lib/bolognese/readers/datacite_json_reader.rb +4 -1
  13. data/lib/bolognese/readers/datacite_reader.rb +19 -3
  14. data/lib/bolognese/readers/npm_reader.rb +1 -1
  15. data/lib/bolognese/readers/ris_reader.rb +2 -2
  16. data/lib/bolognese/readers/schema_org_reader.rb +3 -2
  17. data/lib/bolognese/utils.rb +16 -4
  18. data/lib/bolognese/version.rb +1 -1
  19. data/lib/bolognese/writers/bibtex_writer.rb +1 -1
  20. data/lib/bolognese/writers/codemeta_writer.rb +1 -1
  21. data/lib/bolognese/writers/csv_writer.rb +1 -1
  22. data/lib/bolognese/writers/datacite_json_writer.rb +6 -1
  23. data/lib/bolognese/writers/jats_writer.rb +3 -3
  24. data/lib/bolognese/writers/ris_writer.rb +1 -1
  25. data/lib/bolognese/writers/schema_org_writer.rb +1 -1
  26. data/resources/kernel-4/include/datacite-relationType-v4.xsd +2 -0
  27. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +2 -0
  28. data/resources/kernel-4/metadata.xsd +11 -7
  29. data/resources/kernel-4.5/include/datacite-contributorType-v4.xsd +35 -0
  30. data/resources/kernel-4.5/include/datacite-dateType-v4.xsd +25 -0
  31. data/resources/kernel-4.5/include/datacite-descriptionType-v4.xsd +19 -0
  32. data/resources/kernel-4.5/include/datacite-funderIdentifierType-v4.xsd +16 -0
  33. data/resources/kernel-4.5/include/datacite-nameType-v4.xsd +10 -0
  34. data/resources/kernel-4.5/include/datacite-numberType-v4.xsd +12 -0
  35. data/resources/kernel-4.5/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  36. data/resources/kernel-4.5/include/datacite-relationType-v4.xsd +53 -0
  37. data/resources/kernel-4.5/include/datacite-resourceType-v4.xsd +45 -0
  38. data/resources/kernel-4.5/include/datacite-titleType-v4.xsd +14 -0
  39. data/resources/kernel-4.5/include/xml.xsd +286 -0
  40. data/resources/kernel-4.5/metadata.xsd +711 -0
  41. data/spec/fixtures/datacite-example-full-v4.5.xml +255 -0
  42. data/spec/fixtures/datacite-seriesinformation.xml +7 -2
  43. data/spec/readers/bibtex_reader_spec.rb +2 -0
  44. data/spec/readers/citeproc_reader_spec.rb +3 -0
  45. data/spec/readers/codemeta_reader_spec.rb +4 -4
  46. data/spec/readers/crosscite_reader_spec.rb +2 -0
  47. data/spec/readers/crossref_reader_spec.rb +41 -41
  48. data/spec/readers/datacite_json_reader_spec.rb +2 -0
  49. data/spec/readers/datacite_reader_spec.rb +73 -42
  50. data/spec/readers/npm_reader_spec.rb +2 -0
  51. data/spec/readers/ris_reader_spec.rb +3 -0
  52. data/spec/readers/schema_org_reader_spec.rb +11 -11
  53. data/spec/writers/crosscite_writer_spec.rb +7 -0
  54. data/spec/writers/datacite_json_writer_spec.rb +38 -0
  55. data/spec/writers/datacite_writer_spec.rb +84 -5
  56. data/spec/writers/jats_writer_spec.rb +8 -0
  57. data/spec/writers/rdf_xml_writer_spec.rb +7 -0
  58. data/spec/writers/turtle_writer_spec.rb +18 -0
  59. metadata +29 -2
@@ -32,7 +32,7 @@ describe Bolognese::Metadata, vcr: true do
32
32
  expect(subject.titles).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
33
33
  expect(subject.dates).to eq([{"date"=>"2014-02-11", "dateType"=>"Issued"}, {"date"=>"2018-08-23T09:41:49Z", "dateType"=>"Updated"}])
34
34
  expect(subject.publication_year).to eq("2014")
35
- expect(subject.publisher).to eq("eLife Sciences Publications, Ltd")
35
+ expect(subject.publisher).to eq({"name"=>"eLife Sciences Publications, Ltd"})
36
36
  expect(subject.container).to eq("firstPage" => "e01567", "identifier"=>"2050-084X", "identifierType"=>"ISSN", "title"=>"eLife", "type"=>"Journal", "volume"=>"3")
37
37
  expect(subject.related_identifiers.length).to eq(27)
38
38
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
@@ -69,7 +69,7 @@ describe Bolognese::Metadata, vcr: true do
69
69
  "schemeUri"=>"https://spdx.org/licenses/"}])
70
70
  expect(subject.dates).to eq([{"date"=>"2006-12-20", "dateType"=>"Issued"}, {"date"=>"2020-05-09T09:35:17Z", "dateType"=>"Updated"}])
71
71
  expect(subject.publication_year).to eq("2006")
72
- expect(subject.publisher).to eq("Public Library of Science (PLoS)")
72
+ expect(subject.publisher).to eq({"name"=>"Public Library of Science (PLoS)"})
73
73
  expect(subject.related_identifiers.length).to eq(64)
74
74
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1932-6203", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
75
75
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1056/nejm199109123251104", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -95,7 +95,7 @@ describe Bolognese::Metadata, vcr: true do
95
95
  "schemeUri"=>"https://spdx.org/licenses/"}])
96
96
  expect(subject.dates).to eq([{"date"=>"2019-07-02", "dateType"=>"Issued"}, {"date"=>"2019-09-22T06:40:23Z", "dateType"=>"Updated"}])
97
97
  expect(subject.publication_year).to eq("2019")
98
- expect(subject.publisher).to eq("Frontiers Media SA")
98
+ expect(subject.publisher).to eq({"name"=>"Frontiers Media SA"})
99
99
  expect(subject.funding_references).to eq([{"awardNumber"=>"CA17111", "funderIdentifier"=>"https://doi.org/10.13039/501100000921", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"COST (European Cooperation in Science and Technology)"}])
100
100
  expect(subject.related_identifiers.length).to eq(70)
101
101
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1664-462X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
@@ -115,7 +115,7 @@ describe Bolognese::Metadata, vcr: true do
115
115
  expect(subject.titles).to eq([{"lang"=>"ja", "title"=>"??????????????????????????????"}])
116
116
  expect(subject.dates).to include({"date"=>"2007", "dateType"=>"Issued"})
117
117
  expect(subject.publication_year).to eq("2007")
118
- expect(subject.publisher).to eq("The Japanese Society of Physical Fitness and Sports Medicine")
118
+ expect(subject.publisher).to eq({"name"=>"The Japanese Society of Physical Fitness and Sports Medicine"})
119
119
  expect(subject.related_identifiers.length).to eq(1)
120
120
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1881-4751", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
121
121
  expect(subject.container).to eq("firstPage"=>"60", "identifier"=>"1881-4751", "identifierType"=>"ISSN", "issue"=>"1", "lastPage"=>"60", "title"=>"Japanese Journal of Physical Fitness and Sports Medicine", "type"=>"Journal", "volume"=>"56")
@@ -134,7 +134,7 @@ describe Bolognese::Metadata, vcr: true do
134
134
  expect(subject.titles).to eq([{"title"=>"Global distribution of Fabaeformiscandona subacuta: an??exotic??invasive Ostracoda on the Iberian Peninsula?"}])
135
135
  expect(subject.dates).to include({"date"=>"2012-01-01", "dateType"=>"Issued"})
136
136
  expect(subject.publication_year).to eq("2012")
137
- expect(subject.publisher).to eq("Oxford University Press (OUP)")
137
+ expect(subject.publisher).to eq({"name"=>"Oxford University Press (OUP)"})
138
138
  expect(subject.related_identifiers.length).to eq(44)
139
139
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1937-240X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
140
140
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1002/aqc.1122", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -154,7 +154,7 @@ describe Bolognese::Metadata, vcr: true do
154
154
  expect(subject.titles).to eq([{"title"=>"Human Body Orientation Estimation in Multiview Scenarios"}])
155
155
  expect(subject.dates).to eq([{"date"=>"2012", "dateType"=>"Issued"}, {"date"=>"2020-11-24T03:11:32Z", "dateType"=>"Updated"}])
156
156
  expect(subject.publication_year).to eq("2012")
157
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
157
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
158
158
  expect(subject.related_identifiers.length).to eq(7)
159
159
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"10.1007/978-3-540-24670-1_3", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
160
160
  expect(subject.container).to eq("identifier"=>"1611-3349", "identifierType"=>"ISSN", "title"=>"Lecture Notes in Computer Science", "type"=>"Book Series")
@@ -175,7 +175,7 @@ describe Bolognese::Metadata, vcr: true do
175
175
  expect(subject.descriptions.first["description"]).to start_with("This article presents a practical roadmap")
176
176
  expect(subject.dates).to include({"date"=>"2017-10-09", "dateType"=>"Issued"})
177
177
  expect(subject.publication_year).to eq("2017")
178
- expect(subject.publisher).to eq("Cold Spring Harbor Laboratory")
178
+ expect(subject.publisher).to eq({"name"=>"Cold Spring Harbor Laboratory"})
179
179
  expect(subject.agency).to eq("crossref")
180
180
  end
181
181
 
@@ -197,7 +197,7 @@ describe Bolognese::Metadata, vcr: true do
197
197
  expect(subject.descriptions).to be_empty
198
198
  expect(subject.dates).to include({"date"=>"2020-05-19", "dateType"=>"Issued"})
199
199
  expect(subject.publication_year).to eq("2020")
200
- expect(subject.publisher).to eq("eLife Sciences Publications, Ltd")
200
+ expect(subject.publisher).to eq({"name"=>"eLife Sciences Publications, Ltd"})
201
201
  expect(subject.agency).to eq("crossref")
202
202
  end
203
203
 
@@ -221,7 +221,7 @@ describe Bolognese::Metadata, vcr: true do
221
221
  expect(subject.descriptions).to be_empty
222
222
  expect(subject.dates).to include({"date"=>"2020-06-08", "dateType"=>"Issued"})
223
223
  expect(subject.publication_year).to eq("2020")
224
- expect(subject.publisher).to eq("University of Queensland Library")
224
+ expect(subject.publisher).to eq({"name"=>"University of Queensland Library"})
225
225
  expect(subject.agency).to eq("crossref")
226
226
  end
227
227
 
@@ -237,7 +237,7 @@ describe Bolognese::Metadata, vcr: true do
237
237
  expect(subject.titles).to eq([{"title"=>"THE IMPACT OF PARASITE MANIPULATION AND PREDATOR FORAGING BEHAVIOR ON PREDATOR???PREY COMMUNITIES"}])
238
238
  expect(subject.dates).to eq([{"date"=>"2006-11", "dateType"=>"Issued"}, {"date"=>"2019-04-28T17:51:50Z", "dateType"=>"Updated"}])
239
239
  expect(subject.publication_year).to eq("2006")
240
- expect(subject.publisher).to eq("Wiley")
240
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
241
241
  expect(subject.related_identifiers.length).to eq(35)
242
242
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"0012-9658", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
243
243
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1098/rspb.2002.2213", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -262,7 +262,7 @@ describe Bolognese::Metadata, vcr: true do
262
262
  expect(subject.titles).to eq([{"title"=>"Delineating a Retesting Zone Using Receiver Operating Characteristic Analysis on Serial QuantiFERON Tuberculosis Test Results in US Healthcare Workers"}])
263
263
  expect(subject.dates).to include({"date"=>"2012", "dateType"=>"Issued"})
264
264
  expect(subject.publication_year).to eq("2012")
265
- expect(subject.publisher).to eq("Hindawi Limited")
265
+ expect(subject.publisher).to eq({"name"=>"Hindawi Limited"})
266
266
  expect(subject.related_identifiers.length).to eq(18)
267
267
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2090-1844", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
268
268
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1378/chest.12-0045", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -283,7 +283,7 @@ describe Bolognese::Metadata, vcr: true do
283
283
  expect(subject.titles).to eq([{"title"=>"Paving the path to HIV neurotherapy: Predicting SIV CNS disease"}])
284
284
  expect(subject.dates).to include({"date"=>"2015-07", "dateType"=>"Issued"})
285
285
  expect(subject.publication_year).to eq("2015")
286
- expect(subject.publisher).to eq("Elsevier BV")
286
+ expect(subject.publisher).to eq({"name"=>"Elsevier BV"})
287
287
  expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"0014-2999", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection"},
288
288
  {"relatedIdentifier"=>"10.1212/01.wnl.0000287431.88658.8b",
289
289
  "relatedIdentifierType"=>"DOI",
@@ -562,7 +562,7 @@ describe Bolognese::Metadata, vcr: true do
562
562
  expect(subject.titles).to eq([{"title"=>"Albinism in phylogenetically and geographically distinct populations of Astyanax cavefish arises through the same loss-of-function Oca2 allele"}])
563
563
  expect(subject.dates).to include({"date"=>"2013-04-10", "dateType"=>"Issued"})
564
564
  expect(subject.publication_year).to eq("2013")
565
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
565
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
566
566
  expect(subject.related_identifiers.size).to eq(35)
567
567
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1365-2540", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
568
568
  expect(subject.container).to eq("firstPage"=>"122", "identifier"=>"1365-2540", "identifierType"=>"ISSN", "issue"=>"2", "lastPage"=>"130", "title"=>"Heredity", "type"=>"Journal", "volume"=>"111")
@@ -582,7 +582,7 @@ describe Bolognese::Metadata, vcr: true do
582
582
  expect(subject.descriptions).to eq([{"description"=>"x-ray diffraction structure", "descriptionType"=>"Other"}])
583
583
  expect(subject.dates).to include({"date"=>"1984-07-17", "dateType"=>"Issued"})
584
584
  expect(subject.publication_year).to eq("1984")
585
- expect(subject.publisher).to eq("Worldwide Protein Data Bank")
585
+ expect(subject.publisher).to eq({"name"=>"Worldwide Protein Data Bank"})
586
586
  expect(subject.agency).to eq("crossref")
587
587
  end
588
588
 
@@ -598,7 +598,7 @@ describe Bolognese::Metadata, vcr: true do
598
598
  expect(subject.descriptions).to be_empty
599
599
  expect(subject.dates).to eq([{"date"=>"2015-10-20", "dateType"=>"Issued"}, {"date"=>"2018-10-19T21:13:42Z", "dateType"=>"Updated"}])
600
600
  expect(subject.publication_year).to eq("2015")
601
- expect(subject.publisher).to eq("Public Library of Science (PLoS)")
601
+ expect(subject.publisher).to eq({"name"=>"Public Library of Science (PLoS)"})
602
602
  expect(subject.agency).to eq("crossref")
603
603
  end
604
604
 
@@ -615,7 +615,7 @@ describe Bolognese::Metadata, vcr: true do
615
615
  expect(subject.descriptions).to be_empty
616
616
  expect(subject.dates).to eq([{"date"=>"2017-08-09", "dateType"=>"Issued"}, {"date"=>"2020-06-04T21:31:55Z", "dateType"=>"Updated"}])
617
617
  expect(subject.publication_year).to eq("2017")
618
- expect(subject.publisher).to eq("USDA Forest Service")
618
+ expect(subject.publisher).to eq({"name"=>"USDA Forest Service"})
619
619
  expect(subject.agency).to eq("crossref")
620
620
  end
621
621
 
@@ -631,7 +631,7 @@ describe Bolognese::Metadata, vcr: true do
631
631
  expect(subject.titles).to eq([{"title"=>"Clinical Symptoms and Physical Examinations"}])
632
632
  expect(subject.dates).to eq([{"date"=>"2015", "dateType"=>"Issued"}, {"date"=>"2015-04-14T02:31:13Z", "dateType"=>"Updated"}])
633
633
  expect(subject.publication_year).to eq("2015")
634
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
634
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
635
635
  expect(subject.agency).to eq("crossref")
636
636
  expect(subject.container["type"]).to eq("Book")
637
637
  expect(subject.container["title"]).to eq("Shoulder Stiffness")
@@ -651,7 +651,7 @@ describe Bolognese::Metadata, vcr: true do
651
651
  expect(subject.titles).to eq([{"title"=>"Climate Change and Increasing Risk of Extreme Heat"}])
652
652
  expect(subject.dates).to include({"date"=>"2018", "dateType"=>"Issued"})
653
653
  expect(subject.publication_year).to eq("2018")
654
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
654
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
655
655
  expect(subject.agency).to eq("crossref")
656
656
  expect(subject.container["type"]).to eq("Book Series")
657
657
  expect(subject.container["title"]).to eq("SpringerBriefs in Medical Earth Sciences")
@@ -670,7 +670,7 @@ describe Bolognese::Metadata, vcr: true do
670
670
  expect(subject.titles).to eq([{"title"=>"Unsupervised and Supervised Image Segmentation Using Graph Partitioning"}])
671
671
  expect(subject.dates).to eq([{"date"=>"2012-08-08", "dateType"=>"Issued"}, {"date"=>"2019-07-02T17:17:21Z", "dateType"=>"Updated"}])
672
672
  expect(subject.publication_year).to eq("2012")
673
- expect(subject.publisher).to eq("IGI Global")
673
+ expect(subject.publisher).to eq({"name"=>"IGI Global"})
674
674
  expect(subject.agency).to eq("crossref")
675
675
  expect(subject.container["type"]).to eq("Book")
676
676
  expect(subject.container["title"]).to eq("Graph-Based Methods in Computer Vision")
@@ -690,7 +690,7 @@ describe Bolognese::Metadata, vcr: true do
690
690
  expect(subject.titles).to eq([{"title"=>"Converting the Literature of a Scientific Field to Open Access through Global Collaboration: The Experience of SCOAP3 in Particle Physics"}])
691
691
  expect(subject.dates).to eq([{"date"=>"2018-04-09", "dateType"=>"Issued"}, {"date"=>"2018-04-10T17:58:05Z", "dateType"=>"Updated"}])
692
692
  expect(subject.publication_year).to eq("2018")
693
- expect(subject.publisher).to eq("MDPI AG")
693
+ expect(subject.publisher).to eq({"name"=>"MDPI AG"})
694
694
  expect(subject.agency).to eq("crossref")
695
695
  end
696
696
 
@@ -706,7 +706,7 @@ describe Bolognese::Metadata, vcr: true do
706
706
  expect(subject.titles).to eq([{"title"=>"The Politics of the Past in Early China"}])
707
707
  expect(subject.dates).to eq([{"date"=>"2019-07-01", "dateType"=>"Issued"}, {"date"=>"2021-01-08T19:18:57Z", "dateType"=>"Updated"}])
708
708
  expect(subject.publication_year).to eq("2019")
709
- expect(subject.publisher).to eq("Cambridge University Press (CUP)")
709
+ expect(subject.publisher).to eq({"name"=>"Cambridge University Press (CUP)"})
710
710
  expect(subject.agency).to eq("crossref")
711
711
  expect(subject.date_registered).to eq("2019-07-06T10:19:22Z")
712
712
  end
@@ -724,7 +724,7 @@ describe Bolognese::Metadata, vcr: true do
724
724
  expect(subject.titles).to eq([{"title"=>"Proceedings of the Ocean Drilling Program, 180 Initial Reports"}])
725
725
  expect(subject.dates).to eq([{"date"=>"2000-02-04", "dateType"=>"Issued"}, {"date"=>"2009-02-02T21:19:43Z", "dateType"=>"Updated"}])
726
726
  expect(subject.publication_year).to eq("2000")
727
- expect(subject.publisher).to eq("International Ocean Discovery Program (IODP)")
727
+ expect(subject.publisher).to eq({"name"=>"International Ocean Discovery Program (IODP)"})
728
728
  expect(subject.agency).to eq("crossref")
729
729
  expect(subject.date_registered).to eq("2006-10-17T20:17:44Z")
730
730
  end
@@ -741,7 +741,7 @@ describe Bolognese::Metadata, vcr: true do
741
741
  expect(subject.titles).to eq([{"title"=>"Biogeography of Lanternfishes (Myctophidae) South of 30??S"}])
742
742
  expect(subject.dates).to eq([{"date"=>"1982", "dateType"=>"Issued"}, {"date"=>"2021-02-23T21:58:36Z", "dateType"=>"Updated"}])
743
743
  expect(subject.publication_year).to eq("1982")
744
- expect(subject.publisher).to eq("Wiley")
744
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
745
745
  expect(subject.related_identifiers.length).to eq(44)
746
746
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"10.1016/0031-0182(70)90103-3", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
747
747
  expect(subject.container).to eq("identifier"=>"0066-4634", "identifierType"=>"ISSN", "title"=>"Antarctic Research Series", "type"=>"Book Series", "volume"=>"35")
@@ -762,7 +762,7 @@ describe Bolognese::Metadata, vcr: true do
762
762
  expect(subject.titles).to eq([{"title"=>"Substitutability between organic and conventional poultry products and organic price premiums"}])
763
763
  expect(subject.dates).to include({"date"=>"2018-05", "dateType"=>"Issued"})
764
764
  expect(subject.publication_year).to eq("2018")
765
- expect(subject.publisher).to eq("Franco Angeli")
765
+ expect(subject.publisher).to eq({"name"=>"Franco Angeli"})
766
766
  expect(subject.agency).to eq("mEDRA")
767
767
  end
768
768
 
@@ -779,7 +779,7 @@ describe Bolognese::Metadata, vcr: true do
779
779
  expect(subject.titles).to eq([{"title"=>"Synthesis, Crystal Structure and Theoretical Calculation of a Novel Nickel(II) Complex with Dibromotyrosine and 1,10-Phenanthroline"}])
780
780
  expect(subject.dates).to eq([{"date"=>"2013-10-20", "dateType"=>"Issued"}, {"date"=>"2016-12-15T02:40:52Z", "dateType"=>"Updated"}])
781
781
  expect(subject.publication_year).to eq("2013")
782
- expect(subject.publisher).to eq("Korean Chemical Society")
782
+ expect(subject.publisher).to eq({"name"=>"Korean Chemical Society"})
783
783
  expect(subject.agency).to eq("KISTI")
784
784
  end
785
785
 
@@ -794,7 +794,7 @@ describe Bolognese::Metadata, vcr: true do
794
794
  expect(subject.titles).to eq([{"title"=>"Utilizing the Internet. 12 Series. Future of the Internet."}])
795
795
  expect(subject.dates).to eq([{"date"=>"1997", "dateType"=>"Issued"}, {"date"=>"2020-03-06T06:44:36Z", "dateType"=>"Updated"}])
796
796
  expect(subject.publication_year).to eq("1997")
797
- expect(subject.publisher).to eq("Japan Science and Technology Agency (JST)")
797
+ expect(subject.publisher).to eq({"name"=>"Japan Science and Technology Agency (JST)"})
798
798
  expect(subject.agency).to eq("JaLC")
799
799
  end
800
800
 
@@ -810,7 +810,7 @@ describe Bolognese::Metadata, vcr: true do
810
810
  expect(subject.titles).to eq([{"title"=>"Scientific opinion on the safety of green tea catechins"}])
811
811
  expect(subject.dates).to include({"date"=>"2018-04", "dateType"=>"Issued"})
812
812
  expect(subject.publication_year).to eq("2018")
813
- expect(subject.publisher).to eq("Wiley")
813
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
814
814
  expect(subject.agency).to eq("OP")
815
815
  end
816
816
 
@@ -825,7 +825,7 @@ describe Bolognese::Metadata, vcr: true do
825
825
  expect(subject.titles).to eq([{"title"=>"Distances, absence, proximit??s et pr??sences??: des concepts en d??placement"}, {"title"=>"Distance(s), proximity and presence(s): evolving concepts"}])
826
826
  expect(subject.dates).to include({"date"=>"2014-12-14", "dateType"=>"Issued"})
827
827
  expect(subject.publication_year).to eq("2014")
828
- expect(subject.publisher).to eq("OpenEdition")
828
+ expect(subject.publisher).to eq({"name"=>"OpenEdition"})
829
829
  expect(subject.agency).to eq("crossref")
830
830
  expect(subject.date_registered).to be_nil
831
831
  end
@@ -860,7 +860,7 @@ describe Bolognese::Metadata, vcr: true do
860
860
  expect(subject.titles).to eq([{"title"=>"Finding function: evaluation methods for functional genomic data"}])
861
861
  expect(subject.dates).to include({"date"=>"2006-07-25", "dateType"=>"Issued"})
862
862
  expect(subject.publication_year).to eq("2006")
863
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
863
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
864
864
  expect(subject.agency).to eq("crossref")
865
865
  expect(subject.date_registered).to eq("2020-04-20T16:04:45Z")
866
866
  end
@@ -877,7 +877,7 @@ describe Bolognese::Metadata, vcr: true do
877
877
  expect(subject.titles).to eq([{"title"=>"Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i>"}])
878
878
  expect(subject.dates).to include({"date"=>"2017-05-24", "dateType"=>"Issued"})
879
879
  expect(subject.publication_year).to eq("2017")
880
- expect(subject.publisher).to eq("The Royal Society")
880
+ expect(subject.publisher).to eq({"name"=>"The Royal Society"})
881
881
  expect(subject.agency).to eq("crossref")
882
882
  expect(subject.date_registered).to eq("2021-02-14T10:36:45Z")
883
883
  end
@@ -895,7 +895,7 @@ describe Bolognese::Metadata, vcr: true do
895
895
  expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}])
896
896
  expect(subject.dates).to eq([{"date"=>"2010-12", "dateType"=>"Issued"}, {"date"=>"2021-02-04T22:37:42Z", "dateType"=>"Updated"}])
897
897
  expect(subject.publication_year).to eq("2010")
898
- expect(subject.publisher).to eq("Wiley")
898
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
899
899
  end
900
900
 
901
901
  it "invalid date" do
@@ -916,7 +916,7 @@ describe Bolognese::Metadata, vcr: true do
916
916
  expect(subject.titles).to eq([{"title"=>"Silver-Catalyzed [3+3] Annulation of Glycine Imino Esters with Seyferth???Gilbert Reagent To Access Tetrahydro-1,2,4-triazinecarboxylate Esters"}])
917
917
  expect(subject.dates).to eq([{"date"=>"2020-04-08", "dateType"=>"Issued"}, {"date"=>"2020-06-16T23:13:36Z", "dateType"=>"Updated"}])
918
918
  expect(subject.publication_year).to eq("2020")
919
- expect(subject.publisher).to eq("Georg Thieme Verlag KG")
919
+ expect(subject.publisher).to eq({"name"=>"Georg Thieme Verlag KG"})
920
920
  end
921
921
 
922
922
  it "journal article with" do
@@ -932,7 +932,7 @@ describe Bolognese::Metadata, vcr: true do
932
932
  expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}, {"rightsUri"=>"http://onlinelibrary.wiley.com/termsAndConditions#vor"}])
933
933
  expect(subject.dates).to include({"date"=>"2018-05", "dateType"=>"Issued"})
934
934
  expect(subject.publication_year).to eq("2018")
935
- expect(subject.publisher).to eq("Wiley")
935
+ expect(subject.publisher).to eq({"name"=>"Wiley"})
936
936
  expect(subject.related_identifiers.length).to eq(49)
937
937
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"0028-646X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
938
938
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1002/pmic.201400530", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
@@ -953,7 +953,7 @@ describe Bolognese::Metadata, vcr: true do
953
953
  expect(subject.titles).to eq([{"title"=>"The impact of structural variation on human gene expression"}])
954
954
  expect(subject.dates).to include({"date"=>"2017-04-03", "dateType"=>"Issued"})
955
955
  expect(subject.publication_year).to eq("2017")
956
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
956
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
957
957
  expect(subject.agency).to eq("crossref")
958
958
  expect(subject.date_registered).to eq("2019-11-02T09:30:06Z")
959
959
  end
@@ -970,7 +970,7 @@ describe Bolognese::Metadata, vcr: true do
970
970
  expect(subject.titles).to eq([{"title"=>"Workers and the City: Rethinking the Geographies of Power in Post-socialist Urbanisation"}])
971
971
  expect(subject.dates).to include({"date"=>"2011-12-22", "dateType"=>"Issued"})
972
972
  expect(subject.publication_year).to eq("2011")
973
- expect(subject.publisher).to eq("SAGE Publications")
973
+ expect(subject.publisher).to eq({"name"=>"SAGE Publications"})
974
974
  expect(subject.agency).to eq("crossref")
975
975
  expect(subject.date_registered).to eq("2021-05-16T02:02:38Z")
976
976
  end
@@ -987,7 +987,7 @@ describe Bolognese::Metadata, vcr: true do
987
987
  expect(subject.titles).to eq([{"title"=>"Log-Domain Arithmetic for High-Speed Fuzzy Control on a Field-Programmable Gate Array"}])
988
988
  expect(subject.dates).to include({"date"=>"2013", "dateType"=>"Issued"})
989
989
  expect(subject.publication_year).to eq("2013")
990
- expect(subject.publisher).to eq("Springer Science and Business Media LLC")
990
+ expect(subject.publisher).to eq({"name"=>"Springer Science and Business Media LLC"})
991
991
  expect(subject.container).to eq("identifier"=>"1860-0808", "identifierType"=>"ISSN", "title"=>"Studies in Fuzziness and Soft Computing", "type"=>"Book Series")
992
992
  expect(subject.agency).to eq("crossref")
993
993
  expect(subject.date_registered).to eq("2012-10-31T16:15:44Z")
@@ -1005,7 +1005,7 @@ describe Bolognese::Metadata, vcr: true do
1005
1005
  expect(subject.titles).to eq([{"title"=>"Prediction of a Large-Gap and Switchable Kane-Mele Quantum Spin Hall Insulator"}])
1006
1006
  expect(subject.dates).to include({"date"=>"2018-03-13", "dateType"=>"Issued"})
1007
1007
  expect(subject.publication_year).to eq("2018")
1008
- expect(subject.publisher).to eq("American Physical Society (APS)")
1008
+ expect(subject.publisher).to eq({"name"=>"American Physical Society (APS)"})
1009
1009
  expect(subject.container).to eq("firstPage" => "117701", "identifier"=>"1079-7114", "identifierType"=>"ISSN", "issue"=>"11", "title"=>"Physical Review Letters", "type"=>"Journal", "volume"=>"120")
1010
1010
  expect(subject.agency).to eq("crossref")
1011
1011
  expect(subject.date_registered).to eq("2018-03-13T15:18:48Z")
@@ -1028,7 +1028,7 @@ describe Bolognese::Metadata, vcr: true do
1028
1028
  expect(subject.descriptions.first["description"]).to start_with("Abstract. During the early last glacial termination")
1029
1029
  expect(subject.dates).to include({"date"=>"2020-07-28", "dateType"=>"Issued"})
1030
1030
  expect(subject.publication_year).to eq("2020")
1031
- expect(subject.publisher).to eq("Copernicus GmbH")
1031
+ expect(subject.publisher).to eq({"name"=>"Copernicus GmbH"})
1032
1032
  expect(subject.agency).to eq("crossref")
1033
1033
  end
1034
1034
 
@@ -1048,7 +1048,7 @@ describe Bolognese::Metadata, vcr: true do
1048
1048
  expect(subject.descriptions.first["description"]).to start_with("This chapter explores the nature of the connections")
1049
1049
  expect(subject.dates).to include({"date"=>"2018-04-05", "dateType"=>"Issued"})
1050
1050
  expect(subject.publication_year).to eq("2018")
1051
- expect(subject.publisher).to eq("Oxford University Press (OUP)")
1051
+ expect(subject.publisher).to eq({"name"=>"Oxford University Press (OUP)"})
1052
1052
  expect(subject.agency).to eq("crossref")
1053
1053
  end
1054
1054
 
@@ -1067,7 +1067,7 @@ describe Bolognese::Metadata, vcr: true do
1067
1067
  expect(subject.descriptions).to be_empty
1068
1068
  expect(subject.dates).to include({"date"=>"2010-01-01", "dateType"=>"Issued"})
1069
1069
  expect(subject.publication_year).to eq("2010")
1070
- expect(subject.publisher).to eq("Office of Scientific and Technical Information (OSTI)")
1070
+ expect(subject.publisher).to eq({"name"=>"Office of Scientific and Technical Information (OSTI)"})
1071
1071
  expect(subject.agency).to eq("crossref")
1072
1072
  end
1073
1073
 
@@ -1082,7 +1082,7 @@ describe Bolognese::Metadata, vcr: true do
1082
1082
  expect(subject.titles).to eq([{"title"=>":(unav)"}])
1083
1083
  expect(subject.dates).to eq([{"date"=>"2018-10", "dateType"=>"Issued"}, {"date"=>"2018-10-03T12:09:12Z", "dateType"=>"Updated"}])
1084
1084
  expect(subject.publication_year).to eq("2018")
1085
- expect(subject.publisher).to eq("Baskent University")
1085
+ expect(subject.publisher).to eq({"name"=>"Baskent University"})
1086
1086
  expect(subject.related_identifiers.length).to eq(1)
1087
1087
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2146-8427", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
1088
1088
  expect(subject.container).to eq("identifier"=>"2146-8427", "identifierType"=>"ISSN", "issue"=>"5", "title"=>"Experimental and Clinical Transplantation", "type"=>"Journal", "volume"=>"16")
@@ -18,6 +18,7 @@ describe Bolognese::Metadata, vcr: true do
18
18
  expect(subject.valid?).to be true
19
19
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"BlogPosting", "resourceTypeGeneral"=>"Text", "ris"=>"RPRT", "schemaOrg"=>"ScholarlyArticle")
20
20
  expect(subject.creators).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
21
+ expect(subject.publisher).to eq({"name"=>"DataCite"})
21
22
  expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
22
23
  expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.5438/4k3m-nyvg", "identifierType"=>"DOI"}, {"identifier"=>"MS-49-3632-5083", "identifierType"=>"Local accession number"}])
23
24
  expect(subject.dates).to eq([{"date"=>"2016-12-20", "dateType"=>"Created"}, {"date"=>"2016-12-20", "dateType"=>"Issued"}, {"date"=>"2016-12-20", "dateType"=>"Updated"}])
@@ -65,6 +66,7 @@ describe Bolognese::Metadata, vcr: true do
65
66
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article", "resourceTypeGeneral"=>"Software", "ris"=>"COMP", "schemaOrg"=>"SoftwareSourceCode")
66
67
  expect(subject.creators.length).to eq(2)
67
68
  expect(subject.creators.first).to eq("affiliation"=>[{"name"=>"University of Washington"}], "familyName"=>"Vanderplas", "givenName"=>"Jake", "name"=>"Vanderplas, Jake", "nameIdentifiers"=>[], "nameType"=>"Personal")
69
+ expect(subject.publisher).to eq({"name"=>"Zenodo"})
68
70
  expect(subject.titles).to eq([{"title"=>"Supersmoother: Minor Bug Fix Release"}])
69
71
  expect(subject.id).to eq("https://doi.org/10.5281/zenodo.28518")
70
72
  expect(subject.identifiers).to eq([{"identifier"=>"https://zenodo.org/record/28518", "identifierType"=>"URL"}])