bolognese 2.0.0 → 2.3.5

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/release.yml +2 -2
  4. data/Gemfile.lock +13 -12
  5. data/bolognese.gemspec +4 -3
  6. data/lib/bolognese/author_utils.rb +5 -5
  7. data/lib/bolognese/datacite_utils.rb +2 -2
  8. data/lib/bolognese/metadata_utils.rb +2 -1
  9. data/lib/bolognese/readers/citeproc_reader.rb +6 -0
  10. data/lib/bolognese/readers/crossref_reader.rb +37 -4
  11. data/lib/bolognese/readers/datacite_reader.rb +1 -1
  12. data/lib/bolognese/readers/schema_org_reader.rb +26 -4
  13. data/lib/bolognese/utils.rb +14 -9
  14. data/lib/bolognese/version.rb +1 -1
  15. data/lib/bolognese/writers/datacite_json_writer.rb +1 -4
  16. data/lib/bolognese/writers/jats_writer.rb +4 -1
  17. data/lib/bolognese/writers/schema_org_writer.rb +5 -1
  18. data/resources/kernel-4/include/datacite-contributorType-v4.xsd +3 -1
  19. data/resources/kernel-4/include/datacite-dateType-v4.xsd +3 -1
  20. data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +5 -2
  21. data/resources/kernel-4/include/datacite-relationType-v4.xsd +7 -3
  22. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +5 -1
  23. data/resources/kernel-4/include/datacite-titleType-v4.xsd +1 -1
  24. data/resources/kernel-4/metadata.xsd +2 -1
  25. data/resources/kernel-4.6/include/datacite-contributorType-v4.xsd +37 -0
  26. data/resources/kernel-4.6/include/datacite-dateType-v4.xsd +27 -0
  27. data/resources/kernel-4.6/include/datacite-descriptionType-v4.xsd +19 -0
  28. data/resources/kernel-4.6/include/datacite-funderIdentifierType-v4.xsd +16 -0
  29. data/resources/kernel-4.6/include/datacite-nameType-v4.xsd +10 -0
  30. data/resources/kernel-4.6/include/datacite-numberType-v4.xsd +12 -0
  31. data/resources/kernel-4.6/include/datacite-relatedIdentifierType-v4.xsd +37 -0
  32. data/resources/kernel-4.6/include/datacite-relationType-v4.xsd +57 -0
  33. data/resources/kernel-4.6/include/datacite-resourceType-v4.xsd +49 -0
  34. data/resources/kernel-4.6/include/datacite-titleType-v4.xsd +14 -0
  35. data/resources/kernel-4.6/include/xml.xsd +286 -0
  36. data/resources/kernel-4.6/metadata.xsd +712 -0
  37. data/spec/author_utils_spec.rb +13 -7
  38. data/spec/datacite_utils_spec.rb +151 -1
  39. data/spec/fixtures/citeproc.json +6 -2
  40. data/spec/fixtures/crossref_schema_4.6_values.xml +183 -0
  41. data/spec/fixtures/datacite-example-ROR-nameIdentifiers.xml +8 -0
  42. data/spec/fixtures/datacite-example-full-v4.6.xml +114 -0
  43. data/spec/fixtures/datacite-xml-lang.xml +1 -1
  44. data/spec/fixtures/datacite_blank_name_identifier.xml +22 -0
  45. data/spec/fixtures/datacite_blank_publisher.xml +18 -0
  46. data/spec/fixtures/datacite_journal_article.xml +64 -0
  47. data/spec/fixtures/schema_org.json +1 -0
  48. data/spec/fixtures/schema_org_4.6_attributes.json +108 -0
  49. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book.yml +5 -45
  50. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors_Translator/supports_Translator_contributorType.yml +71 -0
  51. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates_with_Coverage/inserts_date_with_dateType_Coverage.yml +71 -0
  52. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_CSTR/supports_CSTR_relatedIdentifierType.yml +71 -0
  53. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_HasTranslation/supports_HasTranslation_relationType.yml +71 -0
  54. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_RRID/supports_RRID_relatedIdentifierType.yml +71 -0
  55. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Award/supports_Award_as_resourceTypeGeneral.yml +71 -0
  56. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Project/supports_Project_as_resourceTypeGeneral.yml +71 -0
  57. data/spec/readers/citeproc_reader_spec.rb +1 -0
  58. data/spec/readers/codemeta_reader_spec.rb +1 -1
  59. data/spec/readers/crossref_reader_spec.rb +31 -0
  60. data/spec/readers/datacite_reader_spec.rb +98 -7
  61. data/spec/readers/schema_org_reader_spec.rb +29 -2
  62. data/spec/writers/citation_writer_spec.rb +10 -1
  63. data/spec/writers/citeproc_writer_spec.rb +9 -0
  64. data/spec/writers/crosscite_writer_spec.rb +2 -2
  65. data/spec/writers/datacite_json_writer_spec.rb +16 -32
  66. data/spec/writers/datacite_writer_spec.rb +73 -2
  67. data/spec/writers/jats_writer_spec.rb +8 -1
  68. data/spec/writers/schema_org_writer_spec.rb +51 -2
  69. metadata +58 -25
@@ -0,0 +1,71 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Thu, 03 Oct 2024 10:58:34 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Anonymous-Consumer:
30
+ - 'true'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ Vary:
34
+ - Accept-Encoding
35
+ Content-Encoding:
36
+ - gzip
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Permitted-Cross-Domain-Policies:
40
+ - none
41
+ X-Xss-Protection:
42
+ - '0'
43
+ X-Request-Id:
44
+ - 0cd0eb7d-c7aa-4d84-82cc-4288ffd31a3d
45
+ Etag:
46
+ - W/"807f80715dfb8912d986262143d95573"
47
+ X-Frame-Options:
48
+ - SAMEORIGIN
49
+ X-Runtime:
50
+ - '0.035067'
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Powered-By:
54
+ - Phusion Passenger(R) 6.0.23
55
+ Server:
56
+ - nginx/1.18.0 + Phusion Passenger(R) 6.0.23
57
+ Access-Control-Allow-Credentials:
58
+ - 'true'
59
+ Access-Control-Allow-Methods:
60
+ - GET, POST, PUT, PATCH, DELETE, OPTIONS
61
+ Access-Control-Allow-Headers:
62
+ - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With
63
+ Access-Control-Expose-Headers:
64
+ - Authorization
65
+ body:
66
+ encoding: ASCII-8BIT
67
+ string: !binary |-
68
+ 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
69
+ http_version:
70
+ recorded_at: Thu, 03 Oct 2024 10:58:34 GMT
71
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,71 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Thu, 03 Oct 2024 10:58:35 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Anonymous-Consumer:
30
+ - 'true'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ Vary:
34
+ - Accept-Encoding
35
+ Content-Encoding:
36
+ - gzip
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Permitted-Cross-Domain-Policies:
40
+ - none
41
+ X-Xss-Protection:
42
+ - '0'
43
+ X-Request-Id:
44
+ - 31a8b065-2f22-4392-970f-d66a6ad57962
45
+ Etag:
46
+ - W/"3cf452c7dfcfa012c4aed986cc5027f0"
47
+ X-Frame-Options:
48
+ - SAMEORIGIN
49
+ X-Runtime:
50
+ - '0.037198'
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Powered-By:
54
+ - Phusion Passenger(R) 6.0.23
55
+ Server:
56
+ - nginx/1.18.0 + Phusion Passenger(R) 6.0.23
57
+ Access-Control-Allow-Credentials:
58
+ - 'true'
59
+ Access-Control-Allow-Methods:
60
+ - GET, POST, PUT, PATCH, DELETE, OPTIONS
61
+ Access-Control-Allow-Headers:
62
+ - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With
63
+ Access-Control-Expose-Headers:
64
+ - Authorization
65
+ body:
66
+ encoding: ASCII-8BIT
67
+ string: !binary |-
68
+ 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
69
+ http_version:
70
+ recorded_at: Thu, 03 Oct 2024 10:58:35 GMT
71
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,71 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/dois/10.5061/dryad.8515?include=media,client
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/5.0.0; mailto:info@datacite.org)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Thu, 03 Oct 2024 10:58:32 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Anonymous-Consumer:
30
+ - 'true'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ Vary:
34
+ - Accept-Encoding
35
+ Content-Encoding:
36
+ - gzip
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Permitted-Cross-Domain-Policies:
40
+ - none
41
+ X-Xss-Protection:
42
+ - '0'
43
+ X-Request-Id:
44
+ - c752021c-462f-41cd-9744-bfed6a20f1b5
45
+ Etag:
46
+ - W/"355fb10eef74341acde571ef081292c3"
47
+ X-Frame-Options:
48
+ - SAMEORIGIN
49
+ X-Runtime:
50
+ - '0.037271'
51
+ X-Content-Type-Options:
52
+ - nosniff
53
+ X-Powered-By:
54
+ - Phusion Passenger(R) 6.0.23
55
+ Server:
56
+ - nginx/1.18.0 + Phusion Passenger(R) 6.0.23
57
+ Access-Control-Allow-Credentials:
58
+ - 'true'
59
+ Access-Control-Allow-Methods:
60
+ - GET, POST, PUT, PATCH, DELETE, OPTIONS
61
+ Access-Control-Allow-Headers:
62
+ - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With
63
+ Access-Control-Expose-Headers:
64
+ - Authorization
65
+ body:
66
+ encoding: ASCII-8BIT
67
+ string: !binary |-
68
+ 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
69
+ http_version:
70
+ recorded_at: Thu, 03 Oct 2024 10:58:32 GMT
71
+ recorded_with: VCR 3.0.3
@@ -20,6 +20,7 @@ describe Bolognese::Metadata, vcr: true do
20
20
  expect(subject.url).to eq("https://blog.datacite.org/eating-your-own-dog-food")
21
21
  expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"post-weblog", "resourceTypeGeneral"=>"Text", "ris"=>"GEN", "schemaOrg"=>"BlogPosting")
22
22
  expect(subject.creators).to eq([{"familyName"=>"Fenner", "givenName"=>"Martin", "name"=>"Fenner, Martin"}])
23
+ expect(subject.contributors).to eq([{"familyName"=>"Ross", "givenName"=>"Cody", "name"=>"Ross, Cody", "contributorType"=>"Translator"}])
23
24
  expect(subject.publisher).to eq({"name"=>"DataCite"})
24
25
  expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
25
26
  expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
@@ -67,7 +67,7 @@ describe Bolognese::Metadata, vcr: true do
67
67
  "nameIdentifierScheme"=>"ORCID",
68
68
  "schemeUri"=>"https://orcid.org"}],
69
69
  "nameType"=>"Personal"},
70
- {"name"=>"University Of California, Santa Barbara",
70
+ {"name"=>"University of California, Santa Barbara",
71
71
  "nameType"=>"Organizational",
72
72
  "nameIdentifiers" => [], "affiliation" => []}])
73
73
  expect(subject.titles).to eq([{"title"=>"R Interface to the DataONE REST API"}])
@@ -1098,5 +1098,36 @@ describe Bolognese::Metadata, vcr: true do
1098
1098
  expect(subject.agency).to eq("crossref")
1099
1099
  expect(subject.state).to eq("not_found")
1100
1100
  end
1101
+
1102
+ it "with Schema 4.6 Translator contributor" do
1103
+ input = fixture_path + 'crossref_schema_4.6_values.xml'
1104
+ subject = Bolognese::Metadata.new(input: input)
1105
+
1106
+ expect(subject.contributors).to eq([
1107
+ {"givenName"=>"Ashwini", "familyName"=>"Sukale", "name"=>"Sukale, Ashwini", "nameType"=>"Personal", "affiliation"=>[{"name"=>"DataCite"}], "contributorType"=>"Editor"},
1108
+ {"givenName"=>"Cody", "familyName"=>"Ross", "name"=>"Ross, Cody", "nameType"=>"Personal", "affiliation"=>[{"name"=>"DataCite"}], "contributorType"=>"Translator"},
1109
+ ])
1110
+ end
1111
+
1112
+ it "with Schema 4.6 HasTranslation and IsTranslationOf" do
1113
+ input = fixture_path + 'crossref_schema_4.6_values.xml'
1114
+ subject = Bolognese::Metadata.new(input: input)
1115
+
1116
+ expect(subject.related_identifiers.count).to eq(7)
1117
+ expect(subject.related_identifiers).to include(
1118
+ {
1119
+ "relatedIdentifier"=>"10.32013/zll10oq",
1120
+ "relatedIdentifierType"=>"DOI",
1121
+ "relationType"=>"HasTranslation",
1122
+ }
1123
+ )
1124
+ expect(subject.related_identifiers).to include(
1125
+ {
1126
+ "relatedIdentifier"=>"10.5555/original_language",
1127
+ "relatedIdentifierType"=>"DOI",
1128
+ "relationType"=>"IsTranslationOf",
1129
+ }
1130
+ )
1131
+ end
1101
1132
  end
1102
1133
  end
@@ -619,7 +619,7 @@ describe Bolognese::Metadata, vcr: true do
619
619
  expect(subject.valid?).to be true
620
620
  expect(subject.id).to eq("https://doi.org/10.7910/dvn/eqtqyo")
621
621
  expect(subject.types["schemaOrg"]).to eq("Dataset")
622
- expect(subject.creators).to eq([{"name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)", "nameIdentifiers" => [], "affiliation" => []}])
622
+ expect(subject.creators).to eq([{"name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University of Chicago); Vavreck, Lynn (UCLA)", "nameIdentifiers" => [], "affiliation" => []}])
623
623
  end
624
624
 
625
625
  it "author with scheme" do
@@ -935,7 +935,7 @@ describe Bolognese::Metadata, vcr: true do
935
935
  expect(subject.types["resourceType"]).to eq("Simulation Tool")
936
936
  expect(subject.types["resourceTypeGeneral"]).to eq("Software")
937
937
  expect(subject.creators.length).to eq(5)
938
- expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"PatiñO, Carlos", "givenName"=>"Carlos", "familyName"=>"PatiñO", "nameIdentifiers" => [], "affiliation" => [])
938
+ expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Patiño, Carlos", "givenName"=>"Carlos", "familyName"=>"Patiño", "nameIdentifiers" => [], "affiliation" => [])
939
939
  expect(subject.titles).to eq([{"title"=>"LAMMPS Data-File Generator"}])
940
940
  expect(subject.dates).to eq([{"date"=>"2018-07-18", "dateType"=>"Valid"}, {"date"=>"2018-07-18", "dateType"=>"Accepted"}, {"date"=>"2018", "dateType"=>"Issued"}])
941
941
  expect(subject.publication_year).to eq("2018")
@@ -1061,7 +1061,7 @@ describe Bolognese::Metadata, vcr: true do
1061
1061
  expect(subject.types["schemaOrg"]).to eq("Dataset")
1062
1062
  expect(subject.types["resourceType"]).to eq("Disclosure")
1063
1063
  expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
1064
- expect(subject.creators).to eq([{"name"=>"Anonymous", "nameIdentifiers" => [], "affiliation" => []}])
1064
+ expect(subject.creators).to eq([{"name"=>"anonymous", "nameIdentifiers" => [], "affiliation" => []}])
1065
1065
  expect(subject.titles).to eq([{"title"=>"Messung der Bildunschaerfe in H.264-codierten Bildern und Videosequenzen"}])
1066
1066
  expect(subject.dates).to eq([{"date"=>"2017", "dateType"=>"Issued"}])
1067
1067
  expect(subject.publication_year).to eq("2017")
@@ -1085,9 +1085,9 @@ describe Bolognese::Metadata, vcr: true do
1085
1085
  "nameIdentifiers"=>
1086
1086
  [{"nameIdentifier"=>"https://orcid.org/0000-0002-0077-5338",
1087
1087
  "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],
1088
- "name"=>"Van Der A, Ronald",
1088
+ "name"=>"Van der A, Ronald",
1089
1089
  "givenName"=>"Ronald",
1090
- "familyName"=>"Van Der A",
1090
+ "familyName"=>"Van der A",
1091
1091
  "affiliation"=>[{"name"=>"Royal Netherlands Meteorological Institute (KNMI)"}]},
1092
1092
  {"nameType"=>"Personal",
1093
1093
  "name"=>"Allaart, Marc",
@@ -1164,7 +1164,7 @@ describe Bolognese::Metadata, vcr: true do
1164
1164
  expect(subject.types["ris"]).to eq("RPRT")
1165
1165
  expect(subject.types["citeproc"]).to eq("article-journal")
1166
1166
  expect(subject.creators.length).to eq(5)
1167
- expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Patel, Lina", "givenName"=>"Lina", "familyName"=>"Patel", "nameIdentifiers" => [], "affiliation" => [])
1167
+ expect(subject.creators.first).to eq("name"=>"lina patel", "nameIdentifiers" => [], "affiliation" => [])
1168
1168
  expect(subject.titles).to eq([{"title"=>"Referee report. For: Gates - add article keywords to the metatags [version 2; referees: 1 approved]"}])
1169
1169
  expect(subject.publication_year).to eq("2018")
1170
1170
  expect(subject.publisher).to eq({"name"=>"Gates Open Research"})
@@ -1381,7 +1381,7 @@ describe Bolognese::Metadata, vcr: true do
1381
1381
  expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
1382
1382
  expect(subject.types["ris"]).to eq("DATA")
1383
1383
  expect(subject.types["citeproc"]).to eq("dataset")
1384
- expect(subject.creators.first).to eq("familyName"=>"Den Heijer", "givenName"=>"C", "name"=>"Den Heijer, C", "nameType"=>"Personal", "nameIdentifiers" => [], "affiliation" => [])
1384
+ expect(subject.creators.first).to eq("familyName"=>"den Heijer", "givenName"=>"C", "name"=>"den Heijer, C", "nameType"=>"Personal", "nameIdentifiers" => [], "affiliation" => [])
1385
1385
  expect(subject.titles).to eq([{"lang"=>"en", "title"=>"Meteo measurements at the Sand Motor"}])
1386
1386
  expect(subject.publication_year).to eq("2017")
1387
1387
  expect(subject.publisher).to eq({"name"=>"4TU.Centre for Research Data"})
@@ -1759,4 +1759,95 @@ describe Bolognese::Metadata, vcr: true do
1759
1759
  )
1760
1760
  end
1761
1761
  end
1762
+
1763
+ it "blank nameIdentifier" do
1764
+ input = fixture_path + "datacite_blank_name_identifier.xml"
1765
+ subject = Bolognese::Metadata.new(input: input)
1766
+ expect(subject.creators).to eq(
1767
+ [
1768
+ {
1769
+ "nameType" => "Personal",
1770
+ "name" => "KARST, SNO",
1771
+ "givenName" => "SNO",
1772
+ "familyName" => "KARST",
1773
+ "nameIdentifiers" =>
1774
+ [
1775
+ {
1776
+ "schemeUri" => "https://orcid.org",
1777
+ "nameIdentifierScheme" => "ORCID"
1778
+ }
1779
+ ],
1780
+ "affiliation" => []
1781
+ }
1782
+ ]
1783
+ )
1784
+ expect(subject.contributors).to eq(
1785
+ [
1786
+ {
1787
+ "nameType" => "Personal",
1788
+ "name" => "Manche, Yannick",
1789
+ "givenName" => "Yannick",
1790
+ "familyName" => "Manche",
1791
+ "nameIdentifiers" =>
1792
+ [
1793
+ {
1794
+ "schemeUri" => "https://orcid.org",
1795
+ "nameIdentifierScheme" => "ORCID"
1796
+ }
1797
+ ],
1798
+ "affiliation" => [],
1799
+ "contributorType" => "ProjectMember"
1800
+ }
1801
+ ]
1802
+ )
1803
+ end
1804
+
1805
+ it "blank publisher" do
1806
+ input = fixture_path + "datacite_blank_publisher.xml"
1807
+ subject = Bolognese::Metadata.new(input: input)
1808
+ expect(subject.publisher).to eq(
1809
+ { "publisherIdentifier" => "https://ror.org/04wxnsj81" }
1810
+ )
1811
+ end
1812
+
1813
+ describe "DataCite Schema 4.6" do
1814
+ it "handles all DataCite 4.6 features in one XML" do
1815
+ input = fixture_path + 'datacite-example-full-v4.6.xml'
1816
+ subject = Bolognese::Metadata.new(input: input)
1817
+
1818
+ expect(subject.valid?).to be true
1819
+
1820
+ # Test resourceTypeGeneral for Project
1821
+ expect(subject.types["resourceTypeGeneral"]).to eq("Project")
1822
+ expect(subject.types["resourceType"]).to eq("Research Project")
1823
+
1824
+ # Test relatedIdentifiers for RRID and CSTR
1825
+ expect(subject.related_identifiers.length).to eq(4)
1826
+ expect(subject.related_identifiers).to include(
1827
+ { "relatedIdentifier" => "RRID:AB_90755", "relatedIdentifierType" => "RRID", "relationType" => "References" },
1828
+ { "relatedIdentifier" => "CSTR:AB_12345", "relatedIdentifierType" => "CSTR", "relationType" => "References" }
1829
+ )
1830
+
1831
+ # Test relationType HasTranslation and IsTranslationOf
1832
+ expect(subject.related_identifiers).to include(
1833
+ { "relatedIdentifier" => "10.1234/translated-version", "relatedIdentifierType" => "DOI", "relationType" => "HasTranslation" },
1834
+ { "relatedIdentifier" => "10.1234/other-version", "relatedIdentifierType" => "DOI", "relationType" => "IsTranslationOf" }
1835
+ )
1836
+
1837
+ # Test contributorType for Translator
1838
+ expect(subject.contributors.length).to eq(2)
1839
+ expect(subject.contributors.first).to include(
1840
+ "contributorType" => "Translator",
1841
+ "familyName" => "Doe",
1842
+ "givenName" => "Jane"
1843
+ )
1844
+
1845
+ # Test dateType for Coverage
1846
+ expect(subject.dates).to include(
1847
+ { "dateType" => "Coverage", "date" => "2020-01-01" }
1848
+ )
1849
+
1850
+ end
1851
+ end
1762
1852
  end
1853
+
@@ -131,7 +131,7 @@ describe Bolognese::Metadata, vcr: true do
131
131
  expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
132
132
  expect(subject.titles).to eq([{"title"=>"Summary data ankylosing spondylitis GWAS"}])
133
133
  expect(subject.container).to eq("identifier"=>"https://dataverse.harvard.edu", "identifierType"=>"URL", "title"=>"Harvard Dataverse", "type"=>"DataRepository")
134
- expect(subject.creators).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)", "nameIdentifiers"=>[], "affiliation" => []}])
134
+ expect(subject.creators).to eq([{"name" => "International Genetics of Ankylosing Spondylitis Consortium (IGAS)", "nameIdentifiers"=>[], "affiliation" => []}])
135
135
  expect(subject.subjects).to eq([{"subject"=>"Medicine, Health and Life Sciences"},
136
136
  {"subject"=>"Genome-Wide Association Studies"},
137
137
  {"subject"=>"Ankylosing spondylitis"}])
@@ -169,7 +169,7 @@ describe Bolognese::Metadata, vcr: true do
169
169
  expect(subject.publication_year).to eq("2016")
170
170
  expect(subject.related_identifiers.length).to eq(3)
171
171
  expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5438/55e5-t5c0", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
172
- expect(subject.publisher).to eq({"name"=>"DataCite"})
172
+ expect(subject.publisher).to eq({"name"=>"DataCite", "publisherIdentifier"=>"https://ror.org/04wxnsj81"})
173
173
  end
174
174
 
175
175
  it "GTEx dataset" do
@@ -340,5 +340,32 @@ describe Bolognese::Metadata, vcr: true do
340
340
  "funderIdentifierType"=>"Crossref Funder ID",
341
341
  "funderName"=>"European Commission"}])
342
342
  end
343
+
344
+ it "Schema 4.6 attributes" do
345
+ input = fixture_path + 'schema_org_4.6_attributes.json'
346
+ subject = Bolognese::Metadata.new(input: input)
347
+
348
+ expect(subject.related_identifiers).to eq(
349
+ [
350
+ {"relatedIdentifier"=>"10.1234/translated-version", "relatedIdentifierType"=>"DOI", "relationType"=>"HasTranslation"},
351
+ {"relatedIdentifier"=>"10.1234/other-version", "relatedIdentifierType"=>"DOI", "relationType"=>"IsTranslationOf"},
352
+ ]
353
+ )
354
+ expect(subject.dates).to eq(
355
+ [
356
+ {"date"=>"2023-01-01", "dateType"=>"Issued"},
357
+ {"date"=>"2023-01-01", "dateType"=>"Created"},
358
+ {"date"=>"2023-01-01", "dateType"=>"Updated"},
359
+ {"date"=>"2020-01-01", "dateType"=>"Coverage"}
360
+ ]
361
+ )
362
+ expect(subject.contributors).to eq(
363
+ [
364
+ {"name"=>"Doe, Jane", "givenName"=>"Jane", "familyName"=>"Doe", "nameType"=>"Personal", "affiliation"=>[{"name"=>"ExampleAffiliation", "affiliationIdentifier"=>"https://ror.org/04wxnsj81", "affiliationIdentifierScheme"=>"ROR"}], "nameIdentifiers"=>[{"nameIdentifier"=>"https://orcid.org/0000-0003-1419-2405", "schemeUri"=>"https://orcid.org", "nameIdentifierScheme"=>"ORCID"}]},
365
+ {"name"=>"Smith, John", "givenName"=>"John", "familyName"=>"Smith", "nameType"=>"Personal", "affiliation"=>[{"name"=>"ExampleAffiliation", "affiliationIdentifier"=>"https://ror.org/04wxnsj81", "affiliationIdentifierScheme"=>"ROR"}]},
366
+ {"name"=>"Ross, Cody", "givenName"=>"Cody", "familyName"=>"Ross", "nameType"=>"Personal", "affiliation"=>[{"name"=>"ExampleAffiliation", "affiliationIdentifier"=>"https://ror.org/04wxnsj81", "affiliationIdentifierScheme"=>"ROR"}], "nameIdentifiers"=>[{"nameIdentifier"=>"https://orcid.org/0000-0003-1419-2405", "schemeUri"=>"https://orcid.org", "nameIdentifierScheme"=>"ORCID"}], "contributorType"=>"Translator"},
367
+ ]
368
+ )
369
+ end
343
370
  end
344
371
  end
@@ -38,7 +38,7 @@ describe Bolognese::Metadata, vcr: true do
38
38
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
39
39
  expect(subject.style).to eq("apa")
40
40
  expect(subject.locale).to eq("en-US")
41
- expect(subject.citation).to eq("Lab For Exosphere And Near Space Environment Studies. (2019). <i>lenses-lab/LYAO_RT-2018JA026426: Original Release</i> (Version 1.0.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.2598836")
41
+ expect(subject.citation).to eq("Lab for Exosphere and Near Space Environment Studies. (2019). <i>lenses-lab/LYAO_RT-2018JA026426: Original Release</i> (Version 1.0.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.2598836")
42
42
  end
43
43
 
44
44
  it "interactive resource without dates" do
@@ -48,5 +48,14 @@ describe Bolognese::Metadata, vcr: true do
48
48
  expect(subject.locale).to eq("en-US")
49
49
  expect(subject.citation).to eq("Clark, D. (2019). <i>Exploring the \"Many analysts, one dataset\" project from COS</i>. Gigantum, Inc. https://doi.org/10.34747/g6yb-3412")
50
50
  end
51
+
52
+ it "journal article with container title" do
53
+ input = fixture_path + "datacite_journal_article.xml"
54
+ subject = Bolognese::Metadata.new(input: input, from: "datacite")
55
+ expect(subject.types["citeproc"]).to eq("article-journal")
56
+ expect(subject.style).to eq("apa")
57
+ expect(subject.locale).to eq("en-US")
58
+ expect(subject.citation).to eq('Feldman, H. L. (1995). Science and Uncertainty in Mass Exposure Litigation. <i>Texas Law Review</i>. https://doi.org/10.60843/5egy-vc42')
59
+ end
51
60
  end
52
61
  end
@@ -286,5 +286,14 @@ describe Bolognese::Metadata, vcr: true do
286
286
  expect(json["DOI"]).to eq("10.34747/g6yb-3412")
287
287
  expect(json["issued"]).to eq("date-parts"=>[[2019]])
288
288
  end
289
+
290
+ it "from Schema 4.6 with Translator contributor" do
291
+ input = fixture_path + 'datacite-example-full-v4.6.xml'
292
+ subject = Bolognese::Metadata.new(input: input)
293
+ json = JSON.parse(subject.citeproc)
294
+ expect(json["translator"]).to eq([
295
+ {"family"=>"Doe", "given"=>"Jane"},
296
+ ])
297
+ end
289
298
  end
290
299
  end
@@ -67,7 +67,7 @@ describe Bolognese::Metadata, vcr: true do
67
67
  crosscite = JSON.parse(subject.crosscite)
68
68
  expect(crosscite["titles"]).to eq([{"title"=>"R Interface to the DataONE REST API"}])
69
69
  expect(crosscite["creators"].length).to eq(3)
70
- expect(crosscite["creators"].last).to eq("nameType" => "Organizational", "name"=>"University Of California, Santa Barbara", "nameIdentifiers" => [], "affiliation" => [])
70
+ expect(crosscite["creators"].last).to eq("nameType" => "Organizational", "name"=>"University of California, Santa Barbara", "nameIdentifiers" => [], "affiliation" => [])
71
71
  expect(crosscite["version"]).to eq("2.0.0")
72
72
  expect(crosscite["publisher"]).to eq({"name"=>"https://cran.r-project.org"})
73
73
  end
@@ -78,7 +78,7 @@ describe Bolognese::Metadata, vcr: true do
78
78
  crosscite = JSON.parse(subject.crosscite)
79
79
  expect(crosscite["titles"]).to eq([{"title"=>"R Interface to the DataONE REST API"}])
80
80
  expect(crosscite["creators"].length).to eq(3)
81
- expect(crosscite["creators"].last).to eq("nameType" => "Organizational", "name"=>"University Of California, Santa Barbara", "nameIdentifiers" => [], "affiliation" => [])
81
+ expect(crosscite["creators"].last).to eq("nameType" => "Organizational", "name"=>"University of California, Santa Barbara", "nameIdentifiers" => [], "affiliation" => [])
82
82
  expect(crosscite["version"]).to eq("2.0.0")
83
83
  expect(crosscite["publisher"]).to eq({"name"=>"https://cran.r-project.org"})
84
84
  end