relaton-iho 1.13.0 → 1.14.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 +4 -4
- data/.github/workflows/rake.yml +0 -1
- data/.github/workflows/release.yml +22 -0
- data/.gitignore +1 -0
- data/Gemfile +6 -0
- data/README.adoc +10 -23
- data/grammars/basicdoc.rng +3 -27
- data/grammars/biblio-standoc.rng +164 -0
- data/grammars/biblio.rng +82 -19
- data/grammars/relaton-iho-compile.rng +11 -0
- data/grammars/relaton-iho.rng +92 -0
- data/lib/relaton_iho/hash_converter.rb +2 -2
- data/lib/relaton_iho/iho_bibliographic_item.rb +12 -2
- data/lib/relaton_iho/iho_bibliography.rb +17 -11
- data/lib/relaton_iho/version.rb +1 -1
- data/lib/relaton_iho.rb +1 -0
- data/relaton_iho.gemspec +4 -8
- metadata +19 -74
- data/grammars/iho.rng +0 -179
- data/grammars/isodoc.rng +0 -2807
- data/grammars/reqt.rng +0 -223
@@ -13,11 +13,20 @@ module RelatonIho
|
|
13
13
|
super
|
14
14
|
end
|
15
15
|
|
16
|
+
#
|
17
|
+
# Fetch flavor schema version
|
18
|
+
#
|
19
|
+
# @return [String] flavor schema version
|
20
|
+
#
|
21
|
+
def ext_schema
|
22
|
+
@ext_schema ||= schema_versions["relaton-model-iho"]
|
23
|
+
end
|
24
|
+
|
16
25
|
# @param hash [Hash]
|
17
26
|
# @return [RelatonIho::IhoBibliographicItem]
|
18
27
|
def self.from_hash(hash)
|
19
28
|
item_hash = ::RelatonIho::HashConverter.hash_to_bib(hash)
|
20
|
-
new
|
29
|
+
new(**item_hash)
|
21
30
|
end
|
22
31
|
|
23
32
|
# @param opts [Hash]
|
@@ -29,12 +38,13 @@ module RelatonIho
|
|
29
38
|
super ext: !commentperiod.nil?, **opts do |b|
|
30
39
|
if opts[:bibdata] && (doctype || editorialgroup&.presence? ||
|
31
40
|
ics.any? || commentperiod)
|
32
|
-
b.ext do
|
41
|
+
ext = b.ext do
|
33
42
|
b.doctype doctype if doctype
|
34
43
|
editorialgroup&.to_xml b
|
35
44
|
ics.each { |i| i.to_xml b }
|
36
45
|
commentperiod&.to_xml b
|
37
46
|
end
|
47
|
+
ext["schema-version"] = ext_schema unless opts[:embedded]
|
38
48
|
end
|
39
49
|
end
|
40
50
|
end
|
@@ -2,25 +2,31 @@ require "net/http"
|
|
2
2
|
|
3
3
|
module RelatonIho
|
4
4
|
class IhoBibliography
|
5
|
-
ENDPOINT = "https://raw.githubusercontent.com/relaton/relaton-data-iho/"\
|
6
|
-
"master/
|
5
|
+
ENDPOINT = "https://raw.githubusercontent.com/relaton/relaton-data-iho/" \
|
6
|
+
"master/".freeze
|
7
7
|
|
8
8
|
class << self
|
9
|
-
#
|
10
|
-
#
|
9
|
+
#
|
10
|
+
# Search for IHO standard by IHO standard Code
|
11
|
+
#
|
12
|
+
# @param text [String] the IHO standard Code to look up (e..g "IHO B-11")
|
13
|
+
#
|
14
|
+
# @return [RelatonIho::IhoBibliographicItem, nil] the IHO standard or nil if not found
|
15
|
+
#
|
11
16
|
def search(text, _year = nil, _opts = {}) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
12
17
|
warn "[relaton-iho] (\"#{text}\") fetching..."
|
13
|
-
ref = text.sub(/^IHO\s/, "").
|
14
|
-
|
18
|
+
ref = text.sub(/^IHO\s/, "").sub(/^([[:alpha:]]+)(\d+)/, '\1-\2')
|
19
|
+
index = Relaton::Index.find_or_create :IHO, url: "#{ENDPOINT}index.zip"
|
20
|
+
row = index.search(ref).first
|
21
|
+
return unless row
|
22
|
+
|
23
|
+
uri = URI("#{ENDPOINT}#{row[:file]}")
|
15
24
|
resp = Net::HTTP.get_response uri
|
16
25
|
return unless resp.code == "200"
|
17
26
|
|
18
|
-
yaml =
|
19
|
-
YAML.safe_load(resp.body, permitted_classes: [Date])
|
20
|
-
else
|
21
|
-
YAML.safe_load(resp.body, [Date])
|
22
|
-
end
|
27
|
+
yaml = RelatonBib.parse_yaml resp.body, [Date]
|
23
28
|
hash = HashConverter.hash_to_bib yaml
|
29
|
+
hash[:fetched] = Date.today.to_s
|
24
30
|
item = IhoBibliographicItem.new(**hash)
|
25
31
|
warn "[relaton-iho] (\"#{text}\") found #{item.docidentifier.first.id}"
|
26
32
|
item
|
data/lib/relaton_iho/version.rb
CHANGED
data/lib/relaton_iho.rb
CHANGED
data/relaton_iho.gemspec
CHANGED
@@ -9,9 +9,9 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.email = ["open.source@ribose.com"]
|
10
10
|
s.homepage = "https://github.com/relaton/relaton-iho"
|
11
11
|
s.licenses = "BSD-2-Clause"
|
12
|
-
s.summary = "RelatonIho: retrieve IHO Standards for bibliographic "\
|
12
|
+
s.summary = "RelatonIho: retrieve IHO Standards for bibliographic " \
|
13
13
|
"using the BibliographicItem model"
|
14
|
-
s.description = "RelatonIho: retrieve IHO Standards for bibliographic "\
|
14
|
+
s.description = "RelatonIho: retrieve IHO Standards for bibliographic " \
|
15
15
|
"using the BibliographicItem model"
|
16
16
|
|
17
17
|
s.files = Dir.chdir(File.expand_path(__dir__)) do
|
@@ -21,14 +21,10 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
s.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
|
23
23
|
|
24
|
-
s.add_development_dependency "byebug"
|
25
24
|
s.add_development_dependency "equivalent-xml", "~> 0.6"
|
26
25
|
s.add_development_dependency "rake", "~> 13.0"
|
27
26
|
s.add_development_dependency "rspec", "~> 3.0"
|
28
|
-
s.add_development_dependency "ruby-jing"
|
29
|
-
s.add_development_dependency "simplecov"
|
30
|
-
s.add_development_dependency "vcr"
|
31
|
-
s.add_development_dependency "webmock"
|
32
27
|
|
33
|
-
s.add_dependency "relaton-bib", "~> 1.
|
28
|
+
s.add_dependency "relaton-bib", "~> 1.14.0"
|
29
|
+
s.add_dependency "relaton-index", "~> 0.1.0"
|
34
30
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-iho
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: byebug
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: equivalent-xml
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,75 +53,33 @@ dependencies:
|
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '3.0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: simplecov
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: vcr
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: webmock
|
56
|
+
name: relaton-bib
|
113
57
|
requirement: !ruby/object:Gem::Requirement
|
114
58
|
requirements:
|
115
|
-
- - "
|
59
|
+
- - "~>"
|
116
60
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
118
|
-
type: :
|
61
|
+
version: 1.14.0
|
62
|
+
type: :runtime
|
119
63
|
prerelease: false
|
120
64
|
version_requirements: !ruby/object:Gem::Requirement
|
121
65
|
requirements:
|
122
|
-
- - "
|
66
|
+
- - "~>"
|
123
67
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
68
|
+
version: 1.14.0
|
125
69
|
- !ruby/object:Gem::Dependency
|
126
|
-
name: relaton-
|
70
|
+
name: relaton-index
|
127
71
|
requirement: !ruby/object:Gem::Requirement
|
128
72
|
requirements:
|
129
73
|
- - "~>"
|
130
74
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
75
|
+
version: 0.1.0
|
132
76
|
type: :runtime
|
133
77
|
prerelease: false
|
134
78
|
version_requirements: !ruby/object:Gem::Requirement
|
135
79
|
requirements:
|
136
80
|
- - "~>"
|
137
81
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.
|
82
|
+
version: 0.1.0
|
139
83
|
description: 'RelatonIho: retrieve IHO Standards for bibliographic using the BibliographicItem
|
140
84
|
model'
|
141
85
|
email:
|
@@ -145,6 +89,7 @@ extensions: []
|
|
145
89
|
extra_rdoc_files: []
|
146
90
|
files:
|
147
91
|
- ".github/workflows/rake.yml"
|
92
|
+
- ".github/workflows/release.yml"
|
148
93
|
- ".gitignore"
|
149
94
|
- ".rspec"
|
150
95
|
- ".rubocop.yml"
|
@@ -153,10 +98,10 @@ files:
|
|
153
98
|
- Rakefile
|
154
99
|
- bin/rspec
|
155
100
|
- grammars/basicdoc.rng
|
101
|
+
- grammars/biblio-standoc.rng
|
156
102
|
- grammars/biblio.rng
|
157
|
-
- grammars/iho.rng
|
158
|
-
- grammars/
|
159
|
-
- grammars/reqt.rng
|
103
|
+
- grammars/relaton-iho-compile.rng
|
104
|
+
- grammars/relaton-iho.rng
|
160
105
|
- lib/relaton_iho.rb
|
161
106
|
- lib/relaton_iho/comment_periond.rb
|
162
107
|
- lib/relaton_iho/editorial_group.rb
|
@@ -173,7 +118,7 @@ homepage: https://github.com/relaton/relaton-iho
|
|
173
118
|
licenses:
|
174
119
|
- BSD-2-Clause
|
175
120
|
metadata: {}
|
176
|
-
post_install_message:
|
121
|
+
post_install_message:
|
177
122
|
rdoc_options: []
|
178
123
|
require_paths:
|
179
124
|
- lib
|
@@ -188,8 +133,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
188
133
|
- !ruby/object:Gem::Version
|
189
134
|
version: '0'
|
190
135
|
requirements: []
|
191
|
-
rubygems_version: 3.
|
192
|
-
signing_key:
|
136
|
+
rubygems_version: 3.1.6
|
137
|
+
signing_key:
|
193
138
|
specification_version: 4
|
194
139
|
summary: 'RelatonIho: retrieve IHO Standards for bibliographic using the BibliographicItem
|
195
140
|
model'
|
data/grammars/iho.rng
DELETED
@@ -1,179 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
|
-
<!--
|
4
|
-
Currently we inherit from a namespaced grammar, isostandard. Until we inherit from isodoc,
|
5
|
-
we cannot have a new default namespace: we will end up with a grammar with two different
|
6
|
-
namespaces, one for isostandard and one for csand additions. And we do not want that.
|
7
|
-
-->
|
8
|
-
<include href="isodoc.rng">
|
9
|
-
<start>
|
10
|
-
<ref name="iho-standard"/>
|
11
|
-
</start>
|
12
|
-
<define name="DocumentType">
|
13
|
-
<choice>
|
14
|
-
<value>policy-and-procedures</value>
|
15
|
-
<value>best-practices</value>
|
16
|
-
<value>supporting-document</value>
|
17
|
-
<value>report</value>
|
18
|
-
<value>legal</value>
|
19
|
-
<value>directives</value>
|
20
|
-
<value>proposal</value>
|
21
|
-
<value>standard</value>
|
22
|
-
</choice>
|
23
|
-
</define>
|
24
|
-
<define name="editorialgroup">
|
25
|
-
<element name="editorialgroup">
|
26
|
-
<oneOrMore>
|
27
|
-
<choice>
|
28
|
-
<ref name="committee"/>
|
29
|
-
<ref name="workgroup"/>
|
30
|
-
<ref name="commission"/>
|
31
|
-
</choice>
|
32
|
-
</oneOrMore>
|
33
|
-
</element>
|
34
|
-
</define>
|
35
|
-
<define name="BibDataExtensionType">
|
36
|
-
<optional>
|
37
|
-
<ref name="doctype"/>
|
38
|
-
</optional>
|
39
|
-
<optional>
|
40
|
-
<ref name="docsubtype"/>
|
41
|
-
</optional>
|
42
|
-
<zeroOrMore>
|
43
|
-
<ref name="editorialgroup"/>
|
44
|
-
</zeroOrMore>
|
45
|
-
<zeroOrMore>
|
46
|
-
<ref name="ics"/>
|
47
|
-
</zeroOrMore>
|
48
|
-
<optional>
|
49
|
-
<ref name="commentperiod"/>
|
50
|
-
</optional>
|
51
|
-
</define>
|
52
|
-
<define name="annex">
|
53
|
-
<element name="annex">
|
54
|
-
<optional>
|
55
|
-
<attribute name="id">
|
56
|
-
<data type="ID"/>
|
57
|
-
</attribute>
|
58
|
-
</optional>
|
59
|
-
<optional>
|
60
|
-
<attribute name="language"/>
|
61
|
-
</optional>
|
62
|
-
<optional>
|
63
|
-
<attribute name="script"/>
|
64
|
-
</optional>
|
65
|
-
<optional>
|
66
|
-
<attribute name="inline-header">
|
67
|
-
<data type="boolean"/>
|
68
|
-
</attribute>
|
69
|
-
</optional>
|
70
|
-
<attribute name="obligation">
|
71
|
-
<choice>
|
72
|
-
<value>normative</value>
|
73
|
-
<value>informative</value>
|
74
|
-
</choice>
|
75
|
-
</attribute>
|
76
|
-
<optional>
|
77
|
-
<ref name="section-title"/>
|
78
|
-
</optional>
|
79
|
-
<group>
|
80
|
-
<zeroOrMore>
|
81
|
-
<ref name="BasicBlock"/>
|
82
|
-
</zeroOrMore>
|
83
|
-
<zeroOrMore>
|
84
|
-
<choice>
|
85
|
-
<ref name="annex-subsection"/>
|
86
|
-
<ref name="terms"/>
|
87
|
-
<ref name="definitions"/>
|
88
|
-
<ref name="references"/>
|
89
|
-
</choice>
|
90
|
-
</zeroOrMore>
|
91
|
-
</group>
|
92
|
-
<zeroOrMore>
|
93
|
-
<ref name="annex-appendix"/>
|
94
|
-
</zeroOrMore>
|
95
|
-
</element>
|
96
|
-
</define>
|
97
|
-
</include>
|
98
|
-
<define name="committee">
|
99
|
-
<element name="committee">
|
100
|
-
<ref name="IHO_Group"/>
|
101
|
-
</element>
|
102
|
-
</define>
|
103
|
-
<define name="workgroup">
|
104
|
-
<element name="workgroup">
|
105
|
-
<ref name="IHO_Group"/>
|
106
|
-
</element>
|
107
|
-
</define>
|
108
|
-
<define name="commission">
|
109
|
-
<element name="commission">
|
110
|
-
<ref name="IHO_Group"/>
|
111
|
-
</element>
|
112
|
-
</define>
|
113
|
-
<define name="IHO_Group">
|
114
|
-
<optional>
|
115
|
-
<element name="name">
|
116
|
-
<text/>
|
117
|
-
</element>
|
118
|
-
</optional>
|
119
|
-
<element name="abbreviation">
|
120
|
-
<text/>
|
121
|
-
</element>
|
122
|
-
<optional>
|
123
|
-
<choice>
|
124
|
-
<ref name="committee"/>
|
125
|
-
<ref name="workgroup"/>
|
126
|
-
<ref name="commission"/>
|
127
|
-
</choice>
|
128
|
-
</optional>
|
129
|
-
</define>
|
130
|
-
<define name="annex-appendix">
|
131
|
-
<element name="appendix">
|
132
|
-
<ref name="Clause-Section"/>
|
133
|
-
</element>
|
134
|
-
</define>
|
135
|
-
<define name="commentperiod">
|
136
|
-
<element name="commentperiod">
|
137
|
-
<element name="from">
|
138
|
-
<ref name="ISO8601Date"/>
|
139
|
-
</element>
|
140
|
-
<optional>
|
141
|
-
<element name="to">
|
142
|
-
<ref name="ISO8601Date"/>
|
143
|
-
</element>
|
144
|
-
</optional>
|
145
|
-
</element>
|
146
|
-
</define>
|
147
|
-
<define name="iho-standard">
|
148
|
-
<element name="iho-standard">
|
149
|
-
<attribute name="version"/>
|
150
|
-
<attribute name="type">
|
151
|
-
<choice>
|
152
|
-
<value>semantic</value>
|
153
|
-
<value>presentation</value>
|
154
|
-
</choice>
|
155
|
-
</attribute>
|
156
|
-
<ref name="bibdata"/>
|
157
|
-
<zeroOrMore>
|
158
|
-
<ref name="termdocsource"/>
|
159
|
-
</zeroOrMore>
|
160
|
-
<optional>
|
161
|
-
<ref name="misccontainer"/>
|
162
|
-
</optional>
|
163
|
-
<optional>
|
164
|
-
<ref name="boilerplate"/>
|
165
|
-
</optional>
|
166
|
-
<ref name="preface"/>
|
167
|
-
<oneOrMore>
|
168
|
-
<ref name="sections"/>
|
169
|
-
</oneOrMore>
|
170
|
-
<zeroOrMore>
|
171
|
-
<ref name="annex"/>
|
172
|
-
</zeroOrMore>
|
173
|
-
<ref name="bibliography"/>
|
174
|
-
<zeroOrMore>
|
175
|
-
<ref name="indexsect"/>
|
176
|
-
</zeroOrMore>
|
177
|
-
</element>
|
178
|
-
</define>
|
179
|
-
</grammar>
|