relaton-doi 1.17.0 → 1.18.1

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: cd7a42c8385682ebeaffdf2c5b552c62a71b776f971d8ff762c13348035b1136
4
- data.tar.gz: 836ce430acc1746ad7b13fd41a0ff3d6d40f03dc3013f79d6f435deb7a57f697
3
+ metadata.gz: f6165c455d9e93d58c276f6822b9f37d3c47b19a43daae5cbe9f4b13dafeb70e
4
+ data.tar.gz: fbe2077d29570724250addffd80a07d53073303eb55066e007caa2943e0932c7
5
5
  SHA512:
6
- metadata.gz: c8499a314b47222447948dfc44165843a1d6e9466ac43550a267248967d368d589792bfe48203085bf9fac8bb51633f69da93f9c3feebea95a29d34f38a9ba09
7
- data.tar.gz: 9c660236a25bf4e09a7f8bee10fff38dd04a9ad6ee01eee956a94625450c6fab842f7f757cdb8854ae65bc00928edced39cb0af65e86a95e0a50881819d3c151
6
+ metadata.gz: 12d38b33fa066cf92cbecf2a0f4398aa264d941a0e6f09b8099c390e4eb31108ddec4862a395f60a031a3994090f7676ed54705a90d6e7f78ec4b2202f1f632c
7
+ data.tar.gz: d2174bd65dfc7e96e1e1a4c0ec08387a32dd82d3432d8ebb9d792b2d964d21b46468c325f7402345ec702fdd66d1fd430c3309f064781b692f84caa531bc88fc
@@ -10,4 +10,4 @@ on:
10
10
 
11
11
  jobs:
12
12
  rake:
13
- uses: relaton/support/.github/workflows/rake.yml@master
13
+ uses: relaton/support/.github/workflows/rake.yml@main
@@ -17,7 +17,7 @@ on:
17
17
 
18
18
  jobs:
19
19
  release:
20
- uses: relaton/support/.github/workflows/release.yml@master
20
+ uses: relaton/support/.github/workflows/release.yml@main
21
21
  with:
22
22
  next_version: ${{ github.event.inputs.next_version }}
23
23
  secrets:
data/README.adoc CHANGED
@@ -14,6 +14,8 @@ https://github.com/metanorma/metanorma-model-iso#iso-bibliographic-item[IsoBibli
14
14
  You can use it to retrieve metadata of Standards from https://crossref.org, and
15
15
  access such metadata through the `BibliographicItem` object.
16
16
 
17
+ To collect metadata this gem makes a few requests to the CrossRef API. It may take a few seconds to get the metadata.
18
+
17
19
  == Installation
18
20
 
19
21
  Add this line to your application's Gemfile:
@@ -2,6 +2,10 @@ module RelatonDoi
2
2
  module Crossref
3
3
  extend self
4
4
 
5
+ HEADER = {
6
+ "User-Agent" => "Relaton/RelatonDoi (https://www.relaton.org/guides/doi/; mailto:open.source@ribose.com)"
7
+ }.freeze
8
+
5
9
  #
6
10
  # Get a document by DOI from the CrossRef API.
7
11
  #
@@ -15,11 +19,13 @@ module RelatonDoi
15
19
  Util.warn "(#{doi}) Fetching from search.crossref.org ..."
16
20
  id = doi.sub(%r{^doi:}, "")
17
21
  message = get_by_id id
18
- Util.warn "(#{doi}) Found: `#{message['DOI']}`"
19
- Parser.parse message
20
- rescue Serrano::NotFound
21
- Util.warn "(#{doi}) Not found."
22
- nil
22
+ if message
23
+ Util.warn "(#{doi}) Found: `#{message['DOI']}`"
24
+ Parser.parse message
25
+ else
26
+ Util.warn("(#{doi}) Not found.")
27
+ nil
28
+ end
23
29
  end
24
30
 
25
31
  #
@@ -30,8 +36,24 @@ module RelatonDoi
30
36
  # @return [Hash] The document.
31
37
  #
32
38
  def get_by_id(id)
33
- resp = Serrano.works ids: id
34
- resp[0]["message"]
39
+ # resp = Serrano.works ids: id
40
+ n = 0
41
+ url = "https://api.crossref.org/works/#{ERB::Util.url_encode(id)}"
42
+ loop do
43
+ resp = Faraday.get url, nil, HEADER
44
+ case resp.status
45
+ when 200
46
+ work = JSON.parse resp.body
47
+ return work["message"] if work["status"] == "ok"
48
+ when 404 then return nil
49
+ end
50
+
51
+ if n > 1
52
+ raise RelatonBib::RequestError, "Crossref error: #{resp.body}"
53
+ end
54
+ n += 1
55
+ sleep resp.headers["x-rate-limit-interval"].to_i * n
56
+ end
35
57
  end
36
58
  end
37
59
  end
@@ -47,5 +47,11 @@ module RelatonDoi
47
47
  def grammar_hash
48
48
  @grammar_hash ||= ::RelatonDoi.grammar_hash
49
49
  end
50
+
51
+ # Returns number of threads
52
+ # @return [Integer]
53
+ def threads
54
+ 2
55
+ end
50
56
  end
51
57
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RelatonDoi
4
- VERSION = "1.17.0"
4
+ VERSION = "1.18.1"
5
5
  end
data/lib/relaton_doi.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "serrano"
3
+ # require "serrano"
4
4
  require "relaton_bipm"
5
5
  # require "relaton_iso_bib"
6
6
  # require "relaton_w3c"
@@ -13,9 +13,9 @@ require_relative "relaton_doi/util"
13
13
  require_relative "relaton_doi/parser"
14
14
  require_relative "relaton_doi/crossref"
15
15
 
16
- Serrano.configuration do |config|
17
- config.mailto = "open.source@ribose.com"
18
- end
16
+ # Serrano.configuration do |config|
17
+ # config.mailto = "open.source@ribose.com"
18
+ # end
19
19
 
20
20
  module RelatonDoi
21
21
  extend self
data/relaton-doi.gemspec CHANGED
@@ -34,13 +34,13 @@ Gem::Specification.new do |spec|
34
34
  # Uncomment to register a new dependency of your gem
35
35
  # spec.add_dependency "example-gem", "~> 1.0"
36
36
 
37
- spec.add_dependency "relaton-bib", "~> 1.17.0"
38
- spec.add_dependency "relaton-bipm", "~> 1.17.0"
39
- spec.add_dependency "relaton-ieee", "~> 1.17.0"
40
- spec.add_dependency "relaton-ietf", "~> 1.17.0"
41
- spec.add_dependency "relaton-nist", "~> 1.17.0"
37
+ spec.add_dependency "relaton-bib", "~> 1.18.0"
38
+ spec.add_dependency "relaton-bipm", "~> 1.18.0"
39
+ spec.add_dependency "relaton-ieee", "~> 1.18.0"
40
+ spec.add_dependency "relaton-ietf", "~> 1.18.0"
41
+ spec.add_dependency "relaton-nist", "~> 1.18.0"
42
42
  # spec.add_dependency "relaton-w3c", "~> 1.10.0"
43
- spec.add_dependency "serrano", "~> 1.4.0"
43
+ # spec.add_dependency "serrano", "~> 1.4.0"
44
44
 
45
45
  # For more information and examples about making a new gem, checkout our
46
46
  # guide at: https://bundler.io/guides/creating_gem.html
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-doi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.17.0
4
+ version: 1.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-11-27 00:00:00.000000000 Z
11
+ date: 2024-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: relaton-bib
@@ -16,84 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.17.0
19
+ version: 1.18.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.17.0
26
+ version: 1.18.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: relaton-bipm
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.17.0
33
+ version: 1.18.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.17.0
40
+ version: 1.18.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: relaton-ieee
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.17.0
47
+ version: 1.18.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.17.0
54
+ version: 1.18.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: relaton-ietf
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.17.0
61
+ version: 1.18.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.17.0
68
+ version: 1.18.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: relaton-nist
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.17.0
75
+ version: 1.18.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.17.0
83
- - !ruby/object:Gem::Dependency
84
- name: serrano
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 1.4.0
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 1.4.0
82
+ version: 1.18.0
97
83
  description: 'RelatonDOI: retrieve Standards for bibliographic using DOI through Crossrefand
98
84
  provide Relaton object.'
99
85
  email:
@@ -142,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
142
128
  - !ruby/object:Gem::Version
143
129
  version: '0'
144
130
  requirements: []
145
- rubygems_version: 3.3.26
131
+ rubygems_version: 3.3.27
146
132
  signing_key:
147
133
  specification_version: 4
148
134
  summary: 'RelatonDOI: retrieve Standards for bibliographic using DOI through Crossrefand