commonmeta-ruby 3.0.2 → 3.0.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/Gemfile.lock +1 -2
- data/commonmeta.gemspec +0 -1
- 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/resources/{commonmeta_v0.9.json → commonmeta_v0.9.1.json} +18 -8
- data/spec/utils_spec.rb +3 -2
- metadata +3 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a70c0df50b2df7309d1d0186f26bee70a258261c71b5c48f7874dfaaac70efc6
|
4
|
+
data.tar.gz: e612605bc58868dd138ad411a6fe0b51e9140f13055cd4ab537201ba885c29a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b8e7a6209e21f136ef26e30f4f2ce4295b65893f629104a1956c8fa2a936119bfd3f09d1d76c6c76c971529e575db3c162c5c703965d5785e632a72966cc180
|
7
|
+
data.tar.gz: 2f244277ad908343de1762267c7ed86083eacd63d3fa3f698a9fb87f60dde9a89de20ec66d12c123d0f6537190d0431659fe791aa1b48f56dbc18843806b43c9
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
commonmeta-ruby (3.0.
|
4
|
+
commonmeta-ruby (3.0.3)
|
5
5
|
activesupport (>= 4.2.5, < 8.0)
|
6
6
|
base32-url (>= 0.5.0, < 1)
|
7
7
|
bibtex-ruby (~> 6.0)
|
@@ -18,7 +18,6 @@ PATH
|
|
18
18
|
loofah (~> 2.19)
|
19
19
|
namae (~> 1.0)
|
20
20
|
postrank-uri (~> 1.1)
|
21
|
-
public_suffix (~> 4.0, >= 4.0.7)
|
22
21
|
rdf-rdfxml (~> 3.2)
|
23
22
|
rdf-turtle (~> 3.2)
|
24
23
|
thor (~> 1.1, >= 1.1.0)
|
data/commonmeta.gemspec
CHANGED
@@ -34,7 +34,6 @@ Gem::Specification.new do |s|
|
|
34
34
|
s.add_dependency 'loofah', '~> 2.19'
|
35
35
|
s.add_dependency 'namae', '~> 1.0'
|
36
36
|
s.add_dependency 'postrank-uri', '~> 1.1'
|
37
|
-
s.add_dependency 'public_suffix', '~> 4.0', '>= 4.0.7'
|
38
37
|
s.add_dependency 'rdf-rdfxml', '~> 3.2'
|
39
38
|
s.add_dependency 'rdf-turtle', '~> 3.2'
|
40
39
|
s.add_dependency 'thor', '~> 1.1', '>= 1.1.0'
|
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
@@ -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,9 @@ 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
|
-
|
616
|
-
expect(response
|
615
|
+
puts response
|
616
|
+
expect(response).to match(%r{#{prefix}/[a-z0-9]+})
|
617
|
+
expect(response.length).to eq(36)
|
617
618
|
end
|
618
619
|
|
619
620
|
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.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-03-
|
11
|
+
date: 2023-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -276,26 +276,6 @@ dependencies:
|
|
276
276
|
- - "~>"
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
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
279
|
- !ruby/object:Gem::Dependency
|
300
280
|
name: rdf-rdfxml
|
301
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -640,7 +620,7 @@ files:
|
|
640
620
|
- lib/commonmeta/xml_converter.rb
|
641
621
|
- resources/2008/09/xsd.xsl
|
642
622
|
- resources/cff.json
|
643
|
-
- resources/commonmeta_v0.9.json
|
623
|
+
- resources/commonmeta_v0.9.1.json
|
644
624
|
- resources/crossref/AccessIndicators.xsd
|
645
625
|
- resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd
|
646
626
|
- resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd
|