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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a34fe61f191f15b4f9bd2896026ad6135ca6ae4e9682668ccc44b3015a83e367
4
- data.tar.gz: fb58a578ac9a5af772237ee218cfb160e18b932cf88fa79497da1410e30cd220
3
+ metadata.gz: af09b151cd27cb724b5ee702811515777a020e5cc751053f59d6700810e677b1
4
+ data.tar.gz: 0b5a2fb2a3e7c8a552de0da8c7be9a04ef74f47830f64eb9b09a2fd95aaa38b9
5
5
  SHA512:
6
- metadata.gz: cf24b4b1dfec02601c32c3be5b0130d5a099bf3cd238dc091834d601c0290fecc89a3fc1a6b9e669996cff94ce968a638ce182edf299a0001b9e250c78cd309c
7
- data.tar.gz: a927a1545ff80aeda7cf65cdb888b27fda1d2f7d878fefd96cafcfe1085fb2fbf283cae2163dbf722b9cb1e76717eaf7b40d35eed5b5a04d6aa1547776b9e794
6
+ metadata.gz: 92d5f66d23261995ad13ec91b807d13566e2c4d89270537c307cca53b3c08d2dc531f7354f5de2b894b8ef38a439f6763fdb097c9fe700aa8c6f04d63161ed1c
7
+ data.tar.gz: 9a9914fd40cd47b0a34a447eb8485c970da7077b8c9afe366707734bb0788e574c32366c8e0b5a5b72b5ac8577071d62a580d955585735e8d8138696066debb8
@@ -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
@@ -37,26 +37,15 @@ $ gem install relaton-iho
37
37
 
38
38
  == Usage
39
39
 
40
- === Configuration
40
+ === Search for a standard using keywords
41
41
 
42
- Configuration is optional. The available option is `logger` which is a `Logger` instance. By default, the logger is `Logger.new($stderr)` with `Logger::WARN` level. To change the logger level, use `RelatonIho.configure` block.
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.
@@ -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
- <zeroOrMore>
719
- <choice>
720
- <ref name="PureTextElement"/>
721
- <ref name="rp"/>
722
- <ref name="rt"/>
723
- </choice>
724
- </zeroOrMore>
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="rp">
728
- <element name="rp">
729
- <zeroOrMore>
730
- <ref name="PureTextElement"/>
731
- </zeroOrMore>
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="rt">
735
- <element name="rt">
736
- <zeroOrMore>
737
- <ref name="PureTextElement"/>
738
- </zeroOrMore>
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
- <attribute name="id">
918
- <data type="ID"/>
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
- <attribute name="src">
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
- <attribute name="mimetype"/>
924
- <optional>
925
- <attribute name="filename"/>
926
- </optional>
927
- <optional>
928
- <attribute name="width">
929
- <choice>
930
- <data type="int"/>
931
- <value>auto</value>
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">
@@ -9,11 +9,42 @@
9
9
  -->
10
10
  <include href="biblio.rng">
11
11
  <define name="BibData">
12
- <ref name="BibliographicItem"/>
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">
@@ -10,7 +10,7 @@ module RelatonIho
10
10
 
11
11
  def check_type(type)
12
12
  unless DOCTYPES.include? type
13
- Util.warn "WARNING: invalid doctype: `#{type}`"
13
+ Util.warn "invalid doctype: `#{type}`"
14
14
  end
15
15
  end
16
16
  end
@@ -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.warn "(#{text}) Fetching from Relaton repository ..."
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.warn "(#{text}) Not found."
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.warn "(#{text}) Found: `#{item.docidentifier.first.id}`"
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,
@@ -1,9 +1,6 @@
1
1
  module RelatonIho
2
2
  module Util
3
3
  extend RelatonBib::Util
4
-
5
- def self.logger
6
- RelatonIho.configuration.logger
7
- end
4
+ PROGNAME = "relaton-iho".freeze
8
5
  end
9
6
  end
@@ -1,3 +1,3 @@
1
1
  module RelatonIho
2
- VERSION = "1.17.0".freeze
2
+ VERSION = "1.19.0".freeze
3
3
  end
@@ -53,6 +53,10 @@ module RelatonIho
53
53
 
54
54
  CommentPeriond.new from: cp.at("from")&.text, to: cp.at("to")&.text
55
55
  end
56
+
57
+ def create_doctype(type)
58
+ DocumentType.new type: type.text, abbreviation: type[:abbreviation]
59
+ end
56
60
  end
57
61
  end
58
62
  end
data/lib/relaton_iho.rb CHANGED
@@ -3,7 +3,6 @@ require "yaml"
3
3
  require "relaton_bib"
4
4
  require "relaton/index"
5
5
  require "relaton_iho/version"
6
- require "relaton_iho/config"
7
6
  require "relaton_iho/util"
8
7
  require "relaton_iho/document_type"
9
8
  require "relaton_iho/iho_bibliography"
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 "relaton-bib", "~> 1.17.0"
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.17.0
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: 2023-11-27 00:00:00.000000000 Z
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.17.0
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.17.0
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.26
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
@@ -1,10 +0,0 @@
1
- module RelatonIho
2
- module Config
3
- include RelatonBib::Config
4
- end
5
- extend Config
6
-
7
- class Configuration < RelatonBib::Configuration
8
- PROGNAME = "relaton-iho".freeze
9
- end
10
- end