relaton-iho 1.17.0 → 1.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +1 -1
- data/.github/workflows/release.yml +1 -1
- data/README.adoc +6 -13
- data/grammars/basicdoc.rng +150 -52
- data/grammars/biblio-standoc.rng +44 -1
- data/grammars/biblio.rng +32 -0
- data/lib/relaton_iho/document_type.rb +1 -1
- data/lib/relaton_iho/iho_bibliography.rb +3 -3
- data/lib/relaton_iho/util.rb +1 -4
- data/lib/relaton_iho/version.rb +1 -1
- data/lib/relaton_iho/xml_parser.rb +4 -0
- data/lib/relaton_iho.rb +0 -1
- data/relaton_iho.gemspec +2 -1
- metadata +19 -6
- data/lib/relaton_iho/config.rb +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af09b151cd27cb724b5ee702811515777a020e5cc751053f59d6700810e677b1
|
4
|
+
data.tar.gz: 0b5a2fb2a3e7c8a552de0da8c7be9a04ef74f47830f64eb9b09a2fd95aaa38b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92d5f66d23261995ad13ec91b807d13566e2c4d89270537c307cca53b3c08d2dc531f7354f5de2b894b8ef38a439f6763fdb097c9fe700aa8c6f04d63161ed1c
|
7
|
+
data.tar.gz: 9a9914fd40cd47b0a34a447eb8485c970da7077b8c9afe366707734bb0788e574c32366c8e0b5a5b72b5ac8577071d62a580d955585735e8d8138696066debb8
|
data/.github/workflows/rake.yml
CHANGED
data/README.adoc
CHANGED
@@ -37,26 +37,15 @@ $ gem install relaton-iho
|
|
37
37
|
|
38
38
|
== Usage
|
39
39
|
|
40
|
-
===
|
40
|
+
=== Search for a standard using keywords
|
41
41
|
|
42
|
-
|
42
|
+
Reference can be specified with or without an edition. References without an edition will return the latest edition of the standard. References with an edition will return the standard with the specified edition.
|
43
43
|
|
44
44
|
[source,ruby]
|
45
45
|
----
|
46
46
|
require 'relaton_iho'
|
47
47
|
=> true
|
48
48
|
|
49
|
-
RelatonIho.configure do |config|
|
50
|
-
config.logger.level = Logger::DEBUG
|
51
|
-
end
|
52
|
-
----
|
53
|
-
|
54
|
-
=== Search for a standard using keywords
|
55
|
-
|
56
|
-
Reference can be specified with or without an edition. References without an edition will return the latest edition of the standard. References with an edition will return the standard with the specified edition.
|
57
|
-
|
58
|
-
[source,ruby]
|
59
|
-
----
|
60
49
|
# Search for a standard using a reference without an edition
|
61
50
|
item = RelatonIho::IhoBibliography.search("IHO B-11")
|
62
51
|
[relaton-iho] (IHO B-11) Fetching from Relaton repository ...
|
@@ -142,6 +131,10 @@ RelatonIho::IhoBibliographicItem.from_hash hash
|
|
142
131
|
...
|
143
132
|
----
|
144
133
|
|
134
|
+
=== Logging
|
135
|
+
|
136
|
+
RelatonIho uses the relaton-logger gem for logging. By default, it logs to STDOUT. To change the log levels and add other loggers, read the https://github.com/relaton/relaton-logger#usage[relaton-logger] documentation.
|
137
|
+
|
145
138
|
== Development
|
146
139
|
|
147
140
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/grammars/basicdoc.rng
CHANGED
@@ -95,8 +95,89 @@
|
|
95
95
|
<ref name="pagebreak"/>
|
96
96
|
<ref name="hr"/>
|
97
97
|
<ref name="bookmark"/>
|
98
|
+
<ref name="amend"/>
|
98
99
|
</choice>
|
99
100
|
</define>
|
101
|
+
<define name="amend">
|
102
|
+
<element name="amend">
|
103
|
+
<ref name="AmendType"/>
|
104
|
+
</element>
|
105
|
+
</define>
|
106
|
+
<define name="AmendType">
|
107
|
+
<optional>
|
108
|
+
<attribute name="id">
|
109
|
+
<data type="ID"/>
|
110
|
+
</attribute>
|
111
|
+
</optional>
|
112
|
+
<attribute name="change">
|
113
|
+
<choice>
|
114
|
+
<value>add</value>
|
115
|
+
<value>modify</value>
|
116
|
+
<value>delete</value>
|
117
|
+
<value>replace</value>
|
118
|
+
</choice>
|
119
|
+
</attribute>
|
120
|
+
<optional>
|
121
|
+
<attribute name="path"/>
|
122
|
+
</optional>
|
123
|
+
<optional>
|
124
|
+
<attribute name="path_end"/>
|
125
|
+
</optional>
|
126
|
+
<optional>
|
127
|
+
<attribute name="title"/>
|
128
|
+
</optional>
|
129
|
+
<optional>
|
130
|
+
<element name="location">
|
131
|
+
<zeroOrMore>
|
132
|
+
<choice>
|
133
|
+
<ref name="locality"/>
|
134
|
+
<ref name="localityStack"/>
|
135
|
+
</choice>
|
136
|
+
</zeroOrMore>
|
137
|
+
</element>
|
138
|
+
</optional>
|
139
|
+
<optional>
|
140
|
+
<element name="description">
|
141
|
+
<zeroOrMore>
|
142
|
+
<ref name="BasicBlock"/>
|
143
|
+
</zeroOrMore>
|
144
|
+
</element>
|
145
|
+
</optional>
|
146
|
+
<optional>
|
147
|
+
<element name="newcontent">
|
148
|
+
<optional>
|
149
|
+
<attribute name="id">
|
150
|
+
<data type="ID"/>
|
151
|
+
</attribute>
|
152
|
+
</optional>
|
153
|
+
<zeroOrMore>
|
154
|
+
<ref name="BasicBlock"/>
|
155
|
+
</zeroOrMore>
|
156
|
+
</element>
|
157
|
+
</optional>
|
158
|
+
<zeroOrMore>
|
159
|
+
<ref name="classification"/>
|
160
|
+
</zeroOrMore>
|
161
|
+
<zeroOrMore>
|
162
|
+
<ref name="contributor"/>
|
163
|
+
</zeroOrMore>
|
164
|
+
</define>
|
165
|
+
<define name="classification">
|
166
|
+
<element name="classification">
|
167
|
+
<ref name="classification_tag"/>
|
168
|
+
<ref name="classification_value"/>
|
169
|
+
</element>
|
170
|
+
</define>
|
171
|
+
<define name="classification_tag">
|
172
|
+
<element name="tag">
|
173
|
+
<text/>
|
174
|
+
</element>
|
175
|
+
</define>
|
176
|
+
<define name="classification_value">
|
177
|
+
<element name="value">
|
178
|
+
<text/>
|
179
|
+
</element>
|
180
|
+
</define>
|
100
181
|
<define name="paragraph">
|
101
182
|
<element name="p">
|
102
183
|
<ref name="ParagraphType"/>
|
@@ -163,6 +244,9 @@
|
|
163
244
|
<data type="ID"/>
|
164
245
|
</attribute>
|
165
246
|
<attribute name="reviewer"/>
|
247
|
+
<optional>
|
248
|
+
<attribute name="type"/>
|
249
|
+
</optional>
|
166
250
|
<optional>
|
167
251
|
<attribute name="date">
|
168
252
|
<data type="dateTime"/>
|
@@ -715,27 +799,36 @@
|
|
715
799
|
</define>
|
716
800
|
<define name="ruby">
|
717
801
|
<element name="ruby">
|
718
|
-
<
|
719
|
-
<
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
802
|
+
<choice>
|
803
|
+
<ref name="ruby_pronunciation"/>
|
804
|
+
<ref name="ruby_annotation"/>
|
805
|
+
</choice>
|
806
|
+
<choice>
|
807
|
+
<text/>
|
808
|
+
<ref name="ruby"/>
|
809
|
+
</choice>
|
725
810
|
</element>
|
726
811
|
</define>
|
727
|
-
<define name="
|
728
|
-
<element name="
|
729
|
-
<
|
730
|
-
|
731
|
-
|
812
|
+
<define name="ruby_pronunciation">
|
813
|
+
<element name="pronunciation">
|
814
|
+
<attribute name="value"/>
|
815
|
+
<optional>
|
816
|
+
<attribute name="script"/>
|
817
|
+
</optional>
|
818
|
+
<optional>
|
819
|
+
<attribute name="lang"/>
|
820
|
+
</optional>
|
732
821
|
</element>
|
733
822
|
</define>
|
734
|
-
<define name="
|
735
|
-
<element name="
|
736
|
-
<
|
737
|
-
|
738
|
-
|
823
|
+
<define name="ruby_annotation">
|
824
|
+
<element name="annotation">
|
825
|
+
<attribute name="value"/>
|
826
|
+
<optional>
|
827
|
+
<attribute name="script"/>
|
828
|
+
</optional>
|
829
|
+
<optional>
|
830
|
+
<attribute name="lang"/>
|
831
|
+
</optional>
|
739
832
|
</element>
|
740
833
|
</define>
|
741
834
|
<define name="br">
|
@@ -914,44 +1007,49 @@
|
|
914
1007
|
-->
|
915
1008
|
<define name="image">
|
916
1009
|
<element name="image">
|
917
|
-
<
|
918
|
-
|
1010
|
+
<ref name="Image"/>
|
1011
|
+
</element>
|
1012
|
+
</define>
|
1013
|
+
<define name="Image">
|
1014
|
+
<attribute name="id">
|
1015
|
+
<data type="ID"/>
|
1016
|
+
</attribute>
|
1017
|
+
<attribute name="src">
|
1018
|
+
<data type="anyURI"/>
|
1019
|
+
</attribute>
|
1020
|
+
<attribute name="mimetype"/>
|
1021
|
+
<optional>
|
1022
|
+
<attribute name="filename"/>
|
1023
|
+
</optional>
|
1024
|
+
<optional>
|
1025
|
+
<attribute name="width">
|
1026
|
+
<ref name="ImageSize"/>
|
919
1027
|
</attribute>
|
920
|
-
|
1028
|
+
</optional>
|
1029
|
+
<optional>
|
1030
|
+
<attribute name="height">
|
1031
|
+
<ref name="ImageSize"/>
|
1032
|
+
</attribute>
|
1033
|
+
</optional>
|
1034
|
+
<optional>
|
1035
|
+
<attribute name="alt"/>
|
1036
|
+
</optional>
|
1037
|
+
<optional>
|
1038
|
+
<attribute name="title"/>
|
1039
|
+
</optional>
|
1040
|
+
<optional>
|
1041
|
+
<attribute name="longdesc">
|
921
1042
|
<data type="anyURI"/>
|
922
1043
|
</attribute>
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
<
|
928
|
-
<
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
</choice>
|
933
|
-
</attribute>
|
934
|
-
</optional>
|
935
|
-
<optional>
|
936
|
-
<attribute name="height">
|
937
|
-
<choice>
|
938
|
-
<data type="int"/>
|
939
|
-
<value>auto</value>
|
940
|
-
</choice>
|
941
|
-
</attribute>
|
942
|
-
</optional>
|
943
|
-
<optional>
|
944
|
-
<attribute name="alt"/>
|
945
|
-
</optional>
|
946
|
-
<optional>
|
947
|
-
<attribute name="title"/>
|
948
|
-
</optional>
|
949
|
-
<optional>
|
950
|
-
<attribute name="longdesc">
|
951
|
-
<data type="anyURI"/>
|
952
|
-
</attribute>
|
953
|
-
</optional>
|
954
|
-
</element>
|
1044
|
+
</optional>
|
1045
|
+
</define>
|
1046
|
+
<define name="ImageSize">
|
1047
|
+
<choice>
|
1048
|
+
<data type="string">
|
1049
|
+
<param name="pattern">\d+([.]\d+)?(%?)</param>
|
1050
|
+
</data>
|
1051
|
+
<value>auto</value>
|
1052
|
+
</choice>
|
955
1053
|
</define>
|
956
1054
|
<define name="video">
|
957
1055
|
<element name="video">
|
data/grammars/biblio-standoc.rng
CHANGED
@@ -9,11 +9,42 @@
|
|
9
9
|
-->
|
10
10
|
<include href="biblio.rng">
|
11
11
|
<define name="BibData">
|
12
|
-
<ref name="
|
12
|
+
<ref name="StandardBibliographicItem"/>
|
13
13
|
<optional>
|
14
14
|
<ref name="ext"/>
|
15
15
|
</optional>
|
16
16
|
</define>
|
17
|
+
<define name="docrelation">
|
18
|
+
<element name="relation">
|
19
|
+
<attribute name="type">
|
20
|
+
<ref name="DocRelationType"/>
|
21
|
+
</attribute>
|
22
|
+
<optional>
|
23
|
+
<element name="description">
|
24
|
+
<ref name="FormattedString"/>
|
25
|
+
</element>
|
26
|
+
</optional>
|
27
|
+
<element name="bibitem">
|
28
|
+
<ref name="StandardReducedBibliographicItem"/>
|
29
|
+
</element>
|
30
|
+
<choice>
|
31
|
+
<zeroOrMore>
|
32
|
+
<ref name="locality"/>
|
33
|
+
</zeroOrMore>
|
34
|
+
<zeroOrMore>
|
35
|
+
<ref name="localityStack"/>
|
36
|
+
</zeroOrMore>
|
37
|
+
</choice>
|
38
|
+
<choice>
|
39
|
+
<zeroOrMore>
|
40
|
+
<ref name="sourceLocality"/>
|
41
|
+
</zeroOrMore>
|
42
|
+
<zeroOrMore>
|
43
|
+
<ref name="sourceLocalityStack"/>
|
44
|
+
</zeroOrMore>
|
45
|
+
</choice>
|
46
|
+
</element>
|
47
|
+
</define>
|
17
48
|
</include>
|
18
49
|
<define name="ext">
|
19
50
|
<element name="ext">
|
@@ -161,4 +192,16 @@
|
|
161
192
|
</optional>
|
162
193
|
</element>
|
163
194
|
</define>
|
195
|
+
<define name="StandardBibliographicItem">
|
196
|
+
<ref name="BibliographicItem"/>
|
197
|
+
<zeroOrMore>
|
198
|
+
<ref name="amend"/>
|
199
|
+
</zeroOrMore>
|
200
|
+
</define>
|
201
|
+
<define name="StandardReducedBibliographicItem">
|
202
|
+
<ref name="ReducedBibliographicItem"/>
|
203
|
+
<zeroOrMore>
|
204
|
+
<ref name="amend"/>
|
205
|
+
</zeroOrMore>
|
206
|
+
</define>
|
164
207
|
</grammar>
|
data/grammars/biblio.rng
CHANGED
@@ -241,6 +241,9 @@
|
|
241
241
|
</element>
|
242
242
|
</define>
|
243
243
|
<define name="FullNameType">
|
244
|
+
<optional>
|
245
|
+
<ref name="name_abbreviation"/>
|
246
|
+
</optional>
|
244
247
|
<choice>
|
245
248
|
<group>
|
246
249
|
<zeroOrMore>
|
@@ -266,6 +269,11 @@
|
|
266
269
|
<ref name="variantname"/>
|
267
270
|
</zeroOrMore>
|
268
271
|
</define>
|
272
|
+
<define name="name_abbreviation">
|
273
|
+
<element name="abbreviation">
|
274
|
+
<ref name="LocalizedString"/>
|
275
|
+
</element>
|
276
|
+
</define>
|
269
277
|
<define name="prefix">
|
270
278
|
<element name="prefix">
|
271
279
|
<ref name="LocalizedString"/>
|
@@ -348,6 +356,9 @@
|
|
348
356
|
<zeroOrMore>
|
349
357
|
<ref name="contact"/>
|
350
358
|
</zeroOrMore>
|
359
|
+
<optional>
|
360
|
+
<ref name="logo"/>
|
361
|
+
</optional>
|
351
362
|
</element>
|
352
363
|
</define>
|
353
364
|
<define name="orgname">
|
@@ -366,6 +377,21 @@
|
|
366
377
|
</choice>
|
367
378
|
</element>
|
368
379
|
</define>
|
380
|
+
<define name="logo">
|
381
|
+
<element name="logo">
|
382
|
+
<ref name="image"/>
|
383
|
+
</element>
|
384
|
+
</define>
|
385
|
+
<define name="depiction">
|
386
|
+
<element name="depiction">
|
387
|
+
<optional>
|
388
|
+
<attribute name="scope"/>
|
389
|
+
</optional>
|
390
|
+
<zeroOrMore>
|
391
|
+
<ref name="image"/>
|
392
|
+
</zeroOrMore>
|
393
|
+
</element>
|
394
|
+
</define>
|
369
395
|
<define name="NameWithVariants">
|
370
396
|
<element name="primary">
|
371
397
|
<ref name="LocalizedString"/>
|
@@ -752,6 +778,9 @@
|
|
752
778
|
<optional>
|
753
779
|
<ref name="validity"/>
|
754
780
|
</optional>
|
781
|
+
<optional>
|
782
|
+
<ref name="depiction"/>
|
783
|
+
</optional>
|
755
784
|
</define>
|
756
785
|
<define name="ReducedBibliographicItem">
|
757
786
|
<optional>
|
@@ -849,6 +878,9 @@
|
|
849
878
|
<optional>
|
850
879
|
<ref name="validity"/>
|
851
880
|
</optional>
|
881
|
+
<optional>
|
882
|
+
<ref name="depiction"/>
|
883
|
+
</optional>
|
852
884
|
</define>
|
853
885
|
<define name="btitle">
|
854
886
|
<element name="title">
|
@@ -14,12 +14,12 @@ module RelatonIho
|
|
14
14
|
# @return [RelatonIho::IhoBibliographicItem, nil] the IHO standard or nil if not found
|
15
15
|
#
|
16
16
|
def search(text, _year = nil, _opts = {}) # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
17
|
-
Util.
|
17
|
+
Util.info "Fetching from Relaton repository ...", key: text
|
18
18
|
ref = text.sub(/^IHO\s/, "").sub(/^([[:alpha:]]+)(\d+)/, '\1-\2')
|
19
19
|
index = Relaton::Index.find_or_create :iho, url: "#{ENDPOINT}index.zip"
|
20
20
|
row = index.search(ref).max_by { |r| r[:id] }
|
21
21
|
unless row
|
22
|
-
Util.
|
22
|
+
Util.info "Not found.", key: text
|
23
23
|
return
|
24
24
|
end
|
25
25
|
|
@@ -33,7 +33,7 @@ module RelatonIho
|
|
33
33
|
hash = HashConverter.hash_to_bib yaml
|
34
34
|
hash[:fetched] = Date.today.to_s
|
35
35
|
item = IhoBibliographicItem.new(**hash)
|
36
|
-
Util.
|
36
|
+
Util.info "Found: `#{item.docidentifier.first.id}`", key: text
|
37
37
|
item
|
38
38
|
rescue SocketError, Errno::EINVAL, Errno::ECONNRESET, EOFError,
|
39
39
|
Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError,
|
data/lib/relaton_iho/util.rb
CHANGED
data/lib/relaton_iho/version.rb
CHANGED
data/lib/relaton_iho.rb
CHANGED
data/relaton_iho.gemspec
CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
s.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
23
23
|
|
24
|
-
s.add_dependency "
|
24
|
+
s.add_dependency "base64"
|
25
|
+
s.add_dependency "relaton-bib", "~> 1.19.0"
|
25
26
|
s.add_dependency "relaton-index", "~> 0.2.0"
|
26
27
|
end
|
metadata
CHANGED
@@ -1,29 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-iho
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: base64
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: relaton-bib
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
33
|
+
version: 1.19.0
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
40
|
+
version: 1.19.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: relaton-index
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -62,7 +76,6 @@ files:
|
|
62
76
|
- grammars/relaton-iho.rng
|
63
77
|
- lib/relaton_iho.rb
|
64
78
|
- lib/relaton_iho/comment_periond.rb
|
65
|
-
- lib/relaton_iho/config.rb
|
66
79
|
- lib/relaton_iho/document_type.rb
|
67
80
|
- lib/relaton_iho/editorial_group.rb
|
68
81
|
- lib/relaton_iho/eg.yml
|
@@ -94,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
107
|
- !ruby/object:Gem::Version
|
95
108
|
version: '0'
|
96
109
|
requirements: []
|
97
|
-
rubygems_version: 3.3.
|
110
|
+
rubygems_version: 3.3.27
|
98
111
|
signing_key:
|
99
112
|
specification_version: 4
|
100
113
|
summary: 'RelatonIho: retrieve IHO Standards for bibliographic using the BibliographicItem
|