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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9b9a5c37f7800cb3eeee4bbe8a343562b5c3ea466a0fec8621af95c5132f749
4
- data.tar.gz: c50ad3cda6d44ee2f1e513c4e6ba36adb829d95bd2c07eb6e76b86f8ebbf2ddb
3
+ metadata.gz: a70c0df50b2df7309d1d0186f26bee70a258261c71b5c48f7874dfaaac70efc6
4
+ data.tar.gz: e612605bc58868dd138ad411a6fe0b51e9140f13055cd4ab537201ba885c29a0
5
5
  SHA512:
6
- metadata.gz: 1a3afb6655cef3dfc742e826ae43ff1cde17e8d852b9d2c3c465cd5a9ac8c1c8480dd0e81a888561acc4ea311dfd7968a150c2dabd04b09bb77dcef47632252d
7
- data.tar.gz: dc70555987515a2193c7dec735395fef12d9fa71ce9f1d70a621404ce947e2c8ec09f53c92fa5b7785a675e54d6854ab4b1674bb612514b21481548a873dcad9
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.2)
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'
@@ -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 DataCite v4
160
+ # Then validate against JSON schema for Commonmeta
161
161
  def errors
162
- meta.fetch('errors', nil) || json_schema_errors(schema_version: schema_version)
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 'json_schemer'
4
- require 'pathname'
3
+ require "json_schemer"
4
+ require "pathname"
5
5
 
6
6
  module Commonmeta
7
7
  module SchemaUtils
8
- # DATACITE_V3 = schema = File.read(File.expand_path("../../resources/datacite-v3.json", __dir__))
9
- # DATACITE_V4 = schema = File.read(File.expand_path("../../resources/datacite-v4.json", __dir__))
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(schema_version: nil)
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
@@ -1337,9 +1337,12 @@ module Commonmeta
1337
1337
  end
1338
1338
 
1339
1339
  def encode_doi(prefix)
1340
- random_int = SecureRandom.random_number(2**63..(2**64) - 1)
1341
- suffix = Base32::URL.encode(random_int)
1342
- str = "#{suffix[0, 7]}-#{suffix[6, 7]}"
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Commonmeta
4
- VERSION = '3.0.2'
4
+ VERSION = '3.0.3'
5
5
  end
@@ -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": { "type": "string", "format": "longitude" },
24
- "pointLatitude": { "type": "string", "format": "latitude" }
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": { "type": "string", "format": "longitude" },
322
- "eastBoundLongitude": { "type": "string", "format": "longitude" },
323
- "southBoundLatitude": { "type": "string", "format": "latitude" },
324
- "northBoundLatitude": { "type": "string", "format": "latitude" }
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
- expect(response).to match(%r{#{prefix}/[-._;()/:A-Za-z0-9]+})
616
- expect(response.length).to eq(40)
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.2
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-20 00:00:00.000000000 Z
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