commonmeta-ruby 3.0.2 → 3.0.4
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/.gitignore +0 -7
- data/Gemfile.lock +1 -4
- data/commonmeta.gemspec +0 -2
- data/lib/commonmeta/cli.rb +1 -0
- data/lib/commonmeta/crossref_utils.rb +5 -6
- data/lib/commonmeta/metadata.rb +2 -2
- data/lib/commonmeta/schema_utils.rb +5 -7
- data/lib/commonmeta/utils.rb +6 -3
- data/lib/commonmeta/version.rb +1 -1
- data/lib/commonmeta.rb +0 -1
- data/resources/{commonmeta_v0.9.json → commonmeta_v0.9.1.json} +18 -8
- data/spec/utils_spec.rb +2 -2
- metadata +3 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7dd4130cd421b4e718c9d7ca6e407ff77eb58f10986091baa4dbf1403a0dafc
|
4
|
+
data.tar.gz: 2874c557642143804692c1702bd0487df4b4d73406af8380b445f01a77e00cde
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 062e9794c287d3dbde5d47f1397ba9e52a33be50d6163bac7d33843390a3d7a9855b976aa438853a8844a8980bc2b8e83568332f386f7496e8d6abb434635bb5
|
7
|
+
data.tar.gz: db93cb2e83be946d89ccae9ed6c13103b2d971af7155734f94750194d3f423a6747b629af03bbae40e45200b1185b383e28d104f316de838669210c1c366c1eb
|
data/.gitignore
CHANGED
@@ -10,9 +10,6 @@
|
|
10
10
|
/test/version_tmp/
|
11
11
|
/tmp/
|
12
12
|
|
13
|
-
# Used by dotenv library to load environment variables.
|
14
|
-
# .env
|
15
|
-
|
16
13
|
## Specific to RubyMotion:
|
17
14
|
.dat*
|
18
15
|
.repl_history
|
@@ -50,10 +47,6 @@ build-iPhoneSimulator/
|
|
50
47
|
.rvmrc
|
51
48
|
|
52
49
|
coverage/
|
53
|
-
.env
|
54
|
-
.env.*
|
55
|
-
!.env.example
|
56
|
-
!.env.travis
|
57
50
|
|
58
51
|
.vscode
|
59
52
|
.dccache
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
commonmeta-ruby (3.0.
|
4
|
+
commonmeta-ruby (3.0.4)
|
5
5
|
activesupport (>= 4.2.5, < 8.0)
|
6
6
|
base32-url (>= 0.5.0, < 1)
|
7
7
|
bibtex-ruby (~> 6.0)
|
8
8
|
builder (~> 3.2, >= 3.2.4)
|
9
9
|
citeproc-ruby (~> 2.0)
|
10
10
|
csl-styles (~> 2.0)
|
11
|
-
dotenv (~> 2.1, >= 2.1.1)
|
12
11
|
edtf (~> 3.0, >= 3.0.4)
|
13
12
|
gender_detector (~> 2.0)
|
14
13
|
http (~> 5.1, >= 5.1.1)
|
@@ -18,7 +17,6 @@ PATH
|
|
18
17
|
loofah (~> 2.19)
|
19
18
|
namae (~> 1.0)
|
20
19
|
postrank-uri (~> 1.1)
|
21
|
-
public_suffix (~> 4.0, >= 4.0.7)
|
22
20
|
rdf-rdfxml (~> 3.2)
|
23
21
|
rdf-turtle (~> 3.2)
|
24
22
|
thor (~> 1.1, >= 1.1.0)
|
@@ -58,7 +56,6 @@ GEM
|
|
58
56
|
docile (1.4.0)
|
59
57
|
domain_name (0.5.20190701)
|
60
58
|
unf (>= 0.0.5, < 1.0.0)
|
61
|
-
dotenv (2.8.1)
|
62
59
|
ebnf (2.3.2)
|
63
60
|
htmlentities (~> 4.3)
|
64
61
|
rdf (~> 3.2)
|
data/commonmeta.gemspec
CHANGED
@@ -24,7 +24,6 @@ Gem::Specification.new do |s|
|
|
24
24
|
s.add_dependency 'builder', '~> 3.2', '>= 3.2.4'
|
25
25
|
s.add_dependency 'citeproc-ruby', '~> 2.0'
|
26
26
|
s.add_dependency 'csl-styles', '~> 2.0'
|
27
|
-
s.add_dependency 'dotenv', '~> 2.1', '>= 2.1.1'
|
28
27
|
s.add_dependency 'edtf', '~> 3.0', '>= 3.0.4'
|
29
28
|
s.add_dependency 'gender_detector', '~> 2.0'
|
30
29
|
s.add_dependency 'http', '~> 5.1', '>= 5.1.1'
|
@@ -34,7 +33,6 @@ Gem::Specification.new do |s|
|
|
34
33
|
s.add_dependency 'loofah', '~> 2.19'
|
35
34
|
s.add_dependency 'namae', '~> 1.0'
|
36
35
|
s.add_dependency 'postrank-uri', '~> 1.1'
|
37
|
-
s.add_dependency 'public_suffix', '~> 4.0', '>= 4.0.7'
|
38
36
|
s.add_dependency 'rdf-rdfxml', '~> 3.2'
|
39
37
|
s.add_dependency 'rdf-turtle', '~> 3.2'
|
40
38
|
s.add_dependency 'thor', '~> 1.1', '>= 1.1.0'
|
data/lib/commonmeta/cli.rb
CHANGED
@@ -2,9 +2,8 @@
|
|
2
2
|
|
3
3
|
module Commonmeta
|
4
4
|
module CrossrefUtils
|
5
|
-
# To configure the writing of Crossref metadata,
|
6
|
-
#
|
7
|
-
# e.g. in a .env file
|
5
|
+
# To configure the writing of Crossref metadata, provide the following variables
|
6
|
+
# depositor, email, and registrant
|
8
7
|
def write_crossref_xml
|
9
8
|
@crossref_xml ||= Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
|
10
9
|
xml.doi_batch(crossref_root_attributes) do
|
@@ -13,10 +12,10 @@ module Commonmeta
|
|
13
12
|
xml.doi_batch_id(SecureRandom.uuid)
|
14
13
|
xml.timestamp(Time.now.utc.strftime('%Y%m%d%H%M%S'))
|
15
14
|
xml.depositor do
|
16
|
-
xml.depositor_name(
|
17
|
-
xml.email_address(
|
15
|
+
xml.depositor_name(depositor)
|
16
|
+
xml.email_address(email)
|
18
17
|
end
|
19
|
-
xml.registrant(
|
18
|
+
xml.registrant(registrant)
|
20
19
|
end
|
21
20
|
xml.body do
|
22
21
|
insert_crossref_work(xml)
|
data/lib/commonmeta/metadata.rb
CHANGED
@@ -157,9 +157,9 @@ module Commonmeta
|
|
157
157
|
end
|
158
158
|
|
159
159
|
# Catch errors in the reader
|
160
|
-
# Then validate against JSON schema for
|
160
|
+
# Then validate against JSON schema for Commonmeta
|
161
161
|
def errors
|
162
|
-
meta.fetch('errors', nil) || json_schema_errors
|
162
|
+
meta.fetch('errors', nil) || json_schema_errors
|
163
163
|
end
|
164
164
|
|
165
165
|
def descriptions
|
@@ -1,16 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require "json_schemer"
|
4
|
+
require "pathname"
|
5
5
|
|
6
6
|
module Commonmeta
|
7
7
|
module SchemaUtils
|
8
|
-
|
9
|
-
|
10
|
-
COMMONMETA = schema = File.read(File.expand_path('../../resources/commonmeta_v0.9.json',
|
11
|
-
__dir__))
|
8
|
+
COMMONMETA = File.read(File.expand_path("../../resources/commonmeta_v0.9.1.json",
|
9
|
+
__dir__))
|
12
10
|
|
13
|
-
def json_schema_errors
|
11
|
+
def json_schema_errors
|
14
12
|
schemer = JSONSchemer.schema(COMMONMETA)
|
15
13
|
errors = schemer.validate(meta).to_a
|
16
14
|
errors.map { |err| JSONSchemer::Errors.pretty err }.presence
|
data/lib/commonmeta/utils.rb
CHANGED
@@ -1337,9 +1337,12 @@ module Commonmeta
|
|
1337
1337
|
end
|
1338
1338
|
|
1339
1339
|
def encode_doi(prefix)
|
1340
|
-
|
1341
|
-
suffix
|
1342
|
-
|
1340
|
+
# DOI suffix is a generated from a random number, encoded in base32
|
1341
|
+
# suffix has 8 digits plus two checksum digits. With base32 there are
|
1342
|
+
# 32 possible digits, so 8 digits gives 32^8 possible combinations
|
1343
|
+
random_int = SecureRandom.random_number(32**7..(32**8) - 1)
|
1344
|
+
suffix = Base32::URL.encode(random_int, checksum: true)
|
1345
|
+
str = "#{suffix[0, 5]}-#{suffix[5, 10]}"
|
1343
1346
|
"https://doi.org/#{prefix}/#{str}"
|
1344
1347
|
end
|
1345
1348
|
|
data/lib/commonmeta/version.rb
CHANGED
data/lib/commonmeta.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
3
|
-
"$id": "https://commonmeta.org/commonmeta_v0.9.json",
|
4
|
-
"title": "Commonmeta v0.9",
|
3
|
+
"$id": "https://commonmeta.org/commonmeta_v0.9.1.json",
|
4
|
+
"title": "Commonmeta v0.9.1",
|
5
5
|
"description": "JSON representation of the Commonmeta schema.",
|
6
6
|
"additionalProperties": false,
|
7
7
|
"definitions": {
|
@@ -17,11 +17,21 @@
|
|
17
17
|
},
|
18
18
|
"uniqueItems": true
|
19
19
|
},
|
20
|
+
"latitude": {
|
21
|
+
"type": "number",
|
22
|
+
"minimum": -90,
|
23
|
+
"maximum": 90
|
24
|
+
},
|
25
|
+
"longitude": {
|
26
|
+
"type": "number",
|
27
|
+
"minimum": -180,
|
28
|
+
"maximum": 180
|
29
|
+
},
|
20
30
|
"geoLocationPoint": {
|
21
31
|
"type": "object",
|
22
32
|
"properties": {
|
23
|
-
"pointLongitude": { "
|
24
|
-
"pointLatitude": { "
|
33
|
+
"pointLongitude": { "$ref": "#/definitions/longitude" },
|
34
|
+
"pointLatitude": { "$ref": "#/definitions/latitude" }
|
25
35
|
},
|
26
36
|
"required": ["pointLongitude", "pointLatitude"]
|
27
37
|
}
|
@@ -318,10 +328,10 @@
|
|
318
328
|
"geoLocationBox": {
|
319
329
|
"type": "object",
|
320
330
|
"properties": {
|
321
|
-
"westBoundLongitude": { "
|
322
|
-
"eastBoundLongitude": { "
|
323
|
-
"southBoundLatitude": { "
|
324
|
-
"northBoundLatitude": { "
|
331
|
+
"westBoundLongitude": { "$ref": "#/definitions/longitude" },
|
332
|
+
"eastBoundLongitude": { "$ref": "#/definitions/longitude" },
|
333
|
+
"southBoundLatitude": { "$ref": "#/definitions/latitude" },
|
334
|
+
"northBoundLatitude": { "$ref": "#/definitions/latitude" }
|
325
335
|
},
|
326
336
|
"required": [
|
327
337
|
"westBoundLongitude",
|
data/spec/utils_spec.rb
CHANGED
@@ -612,8 +612,8 @@ describe Commonmeta::Metadata, vcr: true do
|
|
612
612
|
it 'encode doi' do
|
613
613
|
prefix = '10.53731'
|
614
614
|
response = subject.encode_doi(prefix)
|
615
|
-
expect(response).to match(%r{#{prefix}/[
|
616
|
-
expect(response.length).to eq(
|
615
|
+
expect(response).to match(%r{#{prefix}/[a-z0-9]+})
|
616
|
+
expect(response.length).to eq(36)
|
617
617
|
end
|
618
618
|
|
619
619
|
it 'decode doi' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commonmeta-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.4
|
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-03-
|
11
|
+
date: 2023-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -112,26 +112,6 @@ dependencies:
|
|
112
112
|
- - "~>"
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '2.0'
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: dotenv
|
117
|
-
requirement: !ruby/object:Gem::Requirement
|
118
|
-
requirements:
|
119
|
-
- - "~>"
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: '2.1'
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 2.1.1
|
125
|
-
type: :runtime
|
126
|
-
prerelease: false
|
127
|
-
version_requirements: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "~>"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '2.1'
|
132
|
-
- - ">="
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
version: 2.1.1
|
135
115
|
- !ruby/object:Gem::Dependency
|
136
116
|
name: edtf
|
137
117
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,26 +256,6 @@ dependencies:
|
|
276
256
|
- - "~>"
|
277
257
|
- !ruby/object:Gem::Version
|
278
258
|
version: '1.1'
|
279
|
-
- !ruby/object:Gem::Dependency
|
280
|
-
name: public_suffix
|
281
|
-
requirement: !ruby/object:Gem::Requirement
|
282
|
-
requirements:
|
283
|
-
- - "~>"
|
284
|
-
- !ruby/object:Gem::Version
|
285
|
-
version: '4.0'
|
286
|
-
- - ">="
|
287
|
-
- !ruby/object:Gem::Version
|
288
|
-
version: 4.0.7
|
289
|
-
type: :runtime
|
290
|
-
prerelease: false
|
291
|
-
version_requirements: !ruby/object:Gem::Requirement
|
292
|
-
requirements:
|
293
|
-
- - "~>"
|
294
|
-
- !ruby/object:Gem::Version
|
295
|
-
version: '4.0'
|
296
|
-
- - ">="
|
297
|
-
- !ruby/object:Gem::Version
|
298
|
-
version: 4.0.7
|
299
259
|
- !ruby/object:Gem::Dependency
|
300
260
|
name: rdf-rdfxml
|
301
261
|
requirement: !ruby/object:Gem::Requirement
|
@@ -640,7 +600,7 @@ files:
|
|
640
600
|
- lib/commonmeta/xml_converter.rb
|
641
601
|
- resources/2008/09/xsd.xsl
|
642
602
|
- resources/cff.json
|
643
|
-
- resources/commonmeta_v0.9.json
|
603
|
+
- resources/commonmeta_v0.9.1.json
|
644
604
|
- resources/crossref/AccessIndicators.xsd
|
645
605
|
- resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd
|
646
606
|
- resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd
|