commonmeta-ruby 3.0.2 → 3.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|