bolognese 1.11.2 → 1.11.3
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.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +0 -14
- data/.github/workflows/release.yml +0 -10
- data/Gemfile.lock +2 -2
- data/lib/bolognese/author_utils.rb +13 -1
- data/lib/bolognese/version.rb +1 -1
- data/spec/author_utils_spec.rb +29 -5
- data/spec/fixtures/datacite-example-ROR-nameIdentifiers.xml +7 -0
- data/spec/readers/datacite_reader_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 84e06f3ca24650902cd1d96f777b2103a242fc44346d9995667961f090c1e300
|
|
4
|
+
data.tar.gz: 047d14ab54b8a9aa0569bdaeb90806a8a835809f399693c2b29c0a97e9eb0658
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2547f9e0c41915163269e3802c32c2f73abf6977987748eb70eec7d324585487585a3952a8874bb40e35e4d65d748e6968c0d1f7d92f76992ee3068b2cd718dd
|
|
7
|
+
data.tar.gz: 3beb48ca299e9b0a1ab95e7e74fabd99e127c374a513b9b775644695e12ac489f3d35851bc1553bc01a593c2ce3c84bc37e8f5e2bd452f6ac561d431edd4f669
|
data/.github/workflows/build.yml
CHANGED
|
@@ -7,17 +7,3 @@ on:
|
|
|
7
7
|
jobs:
|
|
8
8
|
ci:
|
|
9
9
|
uses: ./.github/workflows/ci.yml
|
|
10
|
-
build:
|
|
11
|
-
needs: ci
|
|
12
|
-
runs-on: ubuntu-latest
|
|
13
|
-
env:
|
|
14
|
-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
15
|
-
steps:
|
|
16
|
-
- name: Notify Slack
|
|
17
|
-
uses: adamkdean/simple-slack-notify@1.0.4
|
|
18
|
-
with:
|
|
19
|
-
channel: '#ops'
|
|
20
|
-
username: 'GitHub Actions'
|
|
21
|
-
color: 'good'
|
|
22
|
-
text: 'A new version of the bolognese gem is ready for release.'
|
|
23
|
-
|
|
@@ -9,8 +9,6 @@ jobs:
|
|
|
9
9
|
build:
|
|
10
10
|
needs: ci
|
|
11
11
|
runs-on: ubuntu-latest
|
|
12
|
-
env:
|
|
13
|
-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
|
|
14
12
|
steps:
|
|
15
13
|
- uses: actions/checkout@v3
|
|
16
14
|
- name: Set up Ruby 2.6
|
|
@@ -32,11 +30,3 @@ jobs:
|
|
|
32
30
|
gem push *.gem
|
|
33
31
|
env:
|
|
34
32
|
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
|
35
|
-
|
|
36
|
-
- name: Notify Slack
|
|
37
|
-
uses: adamkdean/simple-slack-notify@1.0.4
|
|
38
|
-
with:
|
|
39
|
-
channel: '#ops'
|
|
40
|
-
username: 'GitHub Actions'
|
|
41
|
-
color: 'good'
|
|
42
|
-
text: 'A new version of the bolognese gem has been released.'
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
bolognese (1.11.
|
|
4
|
+
bolognese (1.11.3)
|
|
5
5
|
activesupport (>= 4.2.5)
|
|
6
6
|
benchmark_methods (~> 0.7)
|
|
7
7
|
bibtex-ruby (>= 5.1.0)
|
|
@@ -232,4 +232,4 @@ DEPENDENCIES
|
|
|
232
232
|
webmock (~> 3.0, >= 3.0.1)
|
|
233
233
|
|
|
234
234
|
BUNDLED WITH
|
|
235
|
-
2.
|
|
235
|
+
2.4.10
|
|
@@ -144,16 +144,28 @@ module Bolognese
|
|
|
144
144
|
affiliation_identifier_scheme = nil
|
|
145
145
|
scheme_uri = nil
|
|
146
146
|
else
|
|
147
|
+
scheme_uri = a["schemeURI"]
|
|
147
148
|
if a["affiliationIdentifier"].present?
|
|
148
149
|
affiliation_identifier = a["affiliationIdentifier"]
|
|
149
150
|
if a["schemeURI"].present?
|
|
150
151
|
schemeURI = a["schemeURI"].end_with?("/") ? a["schemeURI"] : a["schemeURI"] + "/"
|
|
151
152
|
end
|
|
152
153
|
affiliation_identifier = !affiliation_identifier.to_s.start_with?("https://") && schemeURI.present? ? normalize_id(schemeURI + affiliation_identifier) : normalize_id(affiliation_identifier)
|
|
154
|
+
# The normalize_id(affiliation_identifier) method currently discards affiliation identifiers that don't start with a URL,
|
|
155
|
+
# for example: affiliation_identifier = "05bp8ka05".
|
|
156
|
+
# To address this issue, we are introducing the following change to handle such affiliation identifiers.
|
|
157
|
+
# when `normalize_id` method could not normalize, it returns nil, hence we have following condition
|
|
158
|
+
if affiliation_identifier.nil?
|
|
159
|
+
if a["affiliationIdentifierScheme"] == "ROR"
|
|
160
|
+
scheme_uri = "https://ror.org"
|
|
161
|
+
affiliation_identifier = normalize_ror(a["affiliationIdentifier"])
|
|
162
|
+
else
|
|
163
|
+
affiliation_identifier = a["affiliationIdentifier"]
|
|
164
|
+
end
|
|
165
|
+
end
|
|
153
166
|
end
|
|
154
167
|
name = a["__content__"].to_s.squish.presence
|
|
155
168
|
affiliation_identifier_scheme = a["affiliationIdentifierScheme"]
|
|
156
|
-
scheme_uri = a["SchemeURI"]
|
|
157
169
|
end
|
|
158
170
|
|
|
159
171
|
{ "name" => name,
|
data/lib/bolognese/version.rb
CHANGED
data/spec/author_utils_spec.rb
CHANGED
|
@@ -163,15 +163,39 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
163
163
|
it "has ROR nameIdentifiers" do
|
|
164
164
|
input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
|
|
165
165
|
subject = Bolognese::Metadata.new(input: input, from: "datacite")
|
|
166
|
-
expect(subject.creators[
|
|
167
|
-
expect(subject.creators[
|
|
168
|
-
expect(subject.creators[
|
|
169
|
-
expect(subject.creators[
|
|
170
|
-
expect(subject.creators[
|
|
166
|
+
expect(subject.creators[2]).to eq("nameType"=>"Organizational", "name"=>"Gump South Pacific Research Station", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/04sk0et52", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
|
|
167
|
+
expect(subject.creators[3]).to eq("nameType"=>"Organizational", "name"=>"University Of Vic", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/006zjws59", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
|
|
168
|
+
expect(subject.creators[4]).to eq("nameType"=>"Organizational", "name"=>"University Of Kivu", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/01qfhxr31", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
|
|
169
|
+
expect(subject.creators[5]).to eq("nameType"=>"Organizational", "name"=>"សាកលវិទ្យាល័យកម្ពុជា", "nameIdentifiers"=> [{"nameIdentifier"=>"http://ror.org/025e3rc84", "nameIdentifierScheme"=>"RORS"}], "affiliation"=>[])
|
|
170
|
+
expect(subject.creators[6]).to eq("nameType"=>"Organizational", "name"=>"جامعة زاخۆ", "nameIdentifiers"=> [{"nameIdentifier"=>"05sd1pz50", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"RORS"}], "affiliation"=>[])
|
|
171
171
|
expect(subject.contributors.first).to eq("nameType"=>"Organizational", "name"=>" Nawroz University ", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/04gp75d48", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[], "contributorType"=>"Producer")
|
|
172
172
|
expect(subject.contributors.last).to eq("nameType"=>"Organizational", "name"=>"University Of Greenland (Https://Www.Uni.Gl/)", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/00t5j6b61", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}],"affiliation"=>[], "contributorType"=>"Sponsor")
|
|
173
173
|
end
|
|
174
174
|
|
|
175
|
+
context "affiliationIdentifier" do
|
|
176
|
+
it "should normalize ROR affiliationIdentifier with and without URL" do
|
|
177
|
+
input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
|
|
178
|
+
subject = Bolognese::Metadata.new(input: input, from: "datacite")
|
|
179
|
+
# without URL inside affiliationIdentifier="05bp8ka77"
|
|
180
|
+
ror_affiliater0 = subject.creators[0]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "ROR" }
|
|
181
|
+
expect(ror_affiliater0[0]["affiliationIdentifier"]).to eq("https://ror.org/05bp8ka77")
|
|
182
|
+
# with URL "affiliationIdentifier"=>"https://ror.org/05bp8ka05"
|
|
183
|
+
ror_affiliater1 = subject.creators[1]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "ROR" }
|
|
184
|
+
expect(ror_affiliater1[0]["affiliationIdentifier"]).to eq("https://ror.org/05bp8ka05")
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
it "should parse non ROR schema's without normalizing them" do
|
|
188
|
+
input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
|
|
189
|
+
subject = Bolognese::Metadata.new(input: input, from: "datacite")
|
|
190
|
+
# without "schemeURI"
|
|
191
|
+
grid_affiliater0 = subject.creators[0]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "GRID" }
|
|
192
|
+
expect(grid_affiliater0[0]["affiliationIdentifier"]).to eq("grid.268117.b")
|
|
193
|
+
# with "schemeURI"=>"https://grid.ac/institutes/"
|
|
194
|
+
grid_affiliater1 = subject.creators[1]["affiliation"].select { |r| r["affiliationIdentifierScheme"] == "GRID" }
|
|
195
|
+
expect(grid_affiliater1[0]["affiliationIdentifier"]).to eq("https://grid.ac/institutes/grid.268117.b")
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
175
199
|
context "authors_as_string" do
|
|
176
200
|
let(:author_with_organization) { [{"type"=>"Person",
|
|
177
201
|
"id"=>"http://orcid.org/0000-0003-0077-4738",
|
|
@@ -3,10 +3,17 @@
|
|
|
3
3
|
xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-%s http://schema.datacite.org/meta/kernel-4/metadata.xsd">
|
|
4
4
|
<identifier identifierType="DOI">10.48321/D1Z60Q</identifier>
|
|
5
5
|
<creators>
|
|
6
|
+
<creator>
|
|
7
|
+
<creatorName nameType="Personal">Ashwini Sukale</creatorName>
|
|
8
|
+
<nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID"> https://orcid.org/0000-0001-9998-0117 </nameIdentifier>
|
|
9
|
+
<affiliation affiliationIdentifier="05bp8ka77" affiliationIdentifierScheme="ROR"> Metadata Game Changers </affiliation>
|
|
10
|
+
<affiliation affiliationIdentifier="grid.268117.b" affiliationIdentifierScheme="GRID">Wesleyan University</affiliation>
|
|
11
|
+
</creator>
|
|
6
12
|
<creator>
|
|
7
13
|
<creatorName nameType="Personal">Erin Robinson</creatorName>
|
|
8
14
|
<nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID"> https://orcid.org/0000-0001-9998-0114 </nameIdentifier>
|
|
9
15
|
<affiliation schemeURI="https://ror.org" affiliationIdentifier="https://ror.org/05bp8ka05" affiliationIdentifierScheme="ROR"> Metadata Game Changers </affiliation>
|
|
16
|
+
<affiliation affiliationIdentifier="grid.268117.b" affiliationIdentifierScheme="GRID" schemeURI="https://grid.ac/institutes/">Wesleyan University</affiliation>
|
|
10
17
|
</creator>
|
|
11
18
|
<creator>
|
|
12
19
|
<creatorName nameType="Organizational">Gump South Pacific Research Station</creatorName>
|
|
@@ -121,7 +121,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
121
121
|
"name"=>"Brown University"},
|
|
122
122
|
{"affiliationIdentifier"=>"https://grid.ac/institutes/grid.268117.b",
|
|
123
123
|
"affiliationIdentifierScheme"=>"GRID",
|
|
124
|
-
"name"=>"Wesleyan University"}])
|
|
124
|
+
"name"=>"Wesleyan University", "schemeUri"=>"https://grid.ac/institutes/"}])
|
|
125
125
|
expect(subject.creators.dig(2, "affiliation")).to eq([{"affiliationIdentifier"=>"https://ror.org/05gq02987",
|
|
126
126
|
"affiliationIdentifierScheme"=>"ROR", "name"=>"Brown University"}])
|
|
127
127
|
expect(subject.titles).to eq([{"lang"=>"en-US", "title"=>"Full DataCite XML Example"}, {"lang"=>"en-US", "title"=>"Demonstration of DataCite Properties.", "titleType"=>"Subtitle"}])
|
|
@@ -950,7 +950,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
950
950
|
expect(subject.types["ris"]).to eq("DATA")
|
|
951
951
|
expect(subject.types["bibtex"]).to eq("misc")
|
|
952
952
|
expect(subject.creators.length).to eq(1)
|
|
953
|
-
expect(subject.creators.first).to eq("affiliation" => [{"affiliationIdentifier"=>"https://ror.org/04zt3wx35", "affiliationIdentifierScheme"=>"ROR", "name"=>"Canada Mortgage and Housing Corporation"}],
|
|
953
|
+
expect(subject.creators.first).to eq("affiliation" => [{"affiliationIdentifier"=>"https://ror.org/04zt3wx35", "affiliationIdentifierScheme"=>"ROR", "name"=>"Canada Mortgage and Housing Corporation", "schemeUri"=>"https://ror.org"}],
|
|
954
954
|
"name" => "Statistique Canada",
|
|
955
955
|
"nameIdentifiers" => [],
|
|
956
956
|
"nameType" => "Organizational")
|
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.11.
|
|
4
|
+
version: 1.11.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Martin Fenner
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-
|
|
11
|
+
date: 2023-09-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: maremma
|