relaton-iec 1.16.0 → 1.16.2

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: 407e0b683664d9b9e59bcbf2dadbbcc3b3289df9d16354cf7704b27529169020
4
- data.tar.gz: dc55bf895de7f08f93f9430c348d562903567df12f5e93c1a7916082c4742ed5
3
+ metadata.gz: d3c632b6fb62b15fd360d801190ebac6742f05658b695e573304b5c4a7d38ed1
4
+ data.tar.gz: 271d54825baa3cc59e59bcc926da577aecb172bb81466cb7b1dd5c4248746357
5
5
  SHA512:
6
- metadata.gz: f4d1c322f0fd0d0f4a5d21c6cebd43f1f8556d34cd096f547da2c16e8f4a437294be845812b35fa1880c0d790092ae13926bd65fbb9d6a24d6c53263417fb3b4
7
- data.tar.gz: ff11597b0da5425a9c402d2da4926200703636b7d88a305299e6d59897e0835f1f68ca2b65f01f94e8f6ff4950e726957bd52ce5624ec712ab67c8f2a794e229
6
+ metadata.gz: 283f22a20fceef3a4dbb3430f8bbdb69930b8286f5af0e00bc8c1648242c6024603b2a284efa7ae7fcdcf908db0f326f48533ba5fbad8389f3e534428a9059b6
7
+ data.tar.gz: 8327e80d5c36f179d692966ebb280fc00c66e89145d1da741e3198b1219655df2a33ca45735870466c3b045ae7b3f8bce7ba663396af76e29b0bdbcf06b8359b
data/README.adoc CHANGED
@@ -31,6 +31,20 @@ Or install it yourself as:
31
31
 
32
32
  == Usage
33
33
 
34
+ === Configuration
35
+
36
+ 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 `RelatonIec.configure` block.
37
+
38
+ [source,ruby]
39
+ ----
40
+ require 'relaton_iec'
41
+ => true
42
+
43
+ RelatonIec.configure do |config|
44
+ config.logger.level = Logger::DEBUG
45
+ end
46
+ ----
47
+
34
48
  === Search for a standard using keywords
35
49
 
36
50
  `RelatonIec::IecBibliography.search(ref, year)` method returns hits collection. Each hit can be used to fetch a document.
@@ -40,9 +54,6 @@ Or install it yourself as:
40
54
 
41
55
  [source,ruby]
42
56
  ----
43
- require 'relaton_iec'
44
- => true
45
-
46
57
  hit_collection = RelatonIec::IecBibliography.search("60050")
47
58
  => <RelatonIec::HitCollection:0x007fe0d7126f28 @ref=60050 @fetched=false>
48
59
 
@@ -78,14 +89,14 @@ item.docidentifier.detect { |di| di.type == "URN" }.id
78
89
  [source,ruby]
79
90
  ----
80
91
  item = RelatonIec::IecBibliography.get("IEC 60050-112:2010")
81
- [relaton-iec] ("IEC 60050-112:2010") fetching...
82
- [relaton-iec] ("IEC 60050-112:2010") found IEC 60050-112:2010
92
+ [relaton-iec] (IEC 60050-112:2010) Fetching from Relaton repository ...
93
+ [relaton-iec] (IEC 60050-112:2010) Found: `IEC 60050-112:2010`
83
94
  => #<RelatonIec::IecBibliographicItem:0x00007f876525e8d0
84
95
  ...
85
96
 
86
97
  item = RelatonIec::IecBibliography.get("IEC 60050-112", "2010", all_parts: true)
87
- [relaton-iec] ("IEC 60050-112") fetching...
88
- [relaton-iec] ("IEC 60050-112") found IEC 60050 (all parts)
98
+ [relaton-iec] (IEC 60050-112) Fetching from Relaton repository ...
99
+ [relaton-iec] (IEC 60050-112) Found: `IEC 60050 (all parts)`
89
100
  => #<RelatonIec::IecBibliographicItem:0x00007f87851888f0
90
101
  ...
91
102
 
@@ -93,8 +104,8 @@ item.docidentifier.first
93
104
  => #<RelatonBib::DocumentIdentifier:0x00007f878518eea8 @id="IEC 60050 (all parts)", @language=nil, @primary=true, @scope=nil, @script=nil, @type="IEC">
94
105
 
95
106
  item = RelatonIec::IecBibliography.get("IEC 60050-112", "2010")
96
- [relaton-iec] ("IEC 60050-112") fetching...
97
- [relaton-iec] ("IEC 60050-112") found IEC 60050-112:2010
107
+ [relaton-iec] (IEC 60050-112) Fetching from Relaton repository ...
108
+ [relaton-iec] (IEC 60050-112) Found: `IEC 60050-112:2010`
98
109
  => #<RelatonIec::IecBibliographicItem:0x007fa69f296da8
99
110
 
100
111
  item.docidentifier.first
@@ -13,12 +13,12 @@ module BasicBlock
13
13
  @mimetype = mimetype
14
14
  @filename = args[:filename]
15
15
  if args[:width] && !args[:width].is_a?(Integer) && args[:width] != "auto"
16
- warn "[basic-block] WARNING: invalid image width attribute \"#{args[:width]}"
17
- warn "[basic-block] image width should be integer or \"auto\""
16
+ warn "[basic-block] WARNING: Invalid image width attribute: \"#{args[:width]}"
17
+ warn "[basic-block] Image width should be integer or \"auto\""
18
18
  end
19
19
  if args[:height] && !args[:height].is_a?(Integer) && args[:height] != "auto"
20
- warn "[basic-block] WARNING: invalid image height attribute \"#{args[:height]}"
21
- warn "[basic-block] image height should be integer or \"auto\""
20
+ warn "[basic-block] WARNING: Invalid image height attribute: \"#{args[:height]}"
21
+ warn "[basic-block] Image height should be integer or \"auto\""
22
22
  end
23
23
  @width = args[:width]
24
24
  @height = args[:height]
@@ -15,8 +15,8 @@ module RelatonIec
15
15
  #
16
16
  def initialize(format)
17
17
  unless FORMATS.include? format
18
- warn "[relaton-iec] WARNING: invalid reference format \"#{format}\""
19
- warn "[relaton-iec] alloved reference formats are: #{FORMATS.join ', '}"
18
+ warn "[relaton-iec] WARNING: Invalid reference format: \"#{format}\""
19
+ warn "[relaton-iec] Alloved reference formats are: #{FORMATS.join ', '}"
20
20
  end
21
21
  @format = format
22
22
  end
@@ -11,8 +11,8 @@ module BasicBlock
11
11
  #
12
12
  def initialize(type:, content: [])
13
13
  unless TYPES.include? type
14
- warn "[relaton-iec] WARNING: invalud type \"#{type}\""
15
- warn "[relaton-iec] allowed types are: #{TYPES.join ', '}"
14
+ warn "[relaton-iec] WARNING: Invalud type: \"#{type}\""
15
+ warn "[relaton-iec] Allowed types are: #{TYPES.join ', '}"
16
16
  end
17
17
  @type = type
18
18
  @content = content
@@ -0,0 +1,10 @@
1
+ module RelatonIec
2
+ module Config
3
+ include RelatonBib::Config
4
+ end
5
+ extend Config
6
+
7
+ class Configuration < RelatonBib::Configuration
8
+ PROGNAME = "relaton-iec".freeze
9
+ end
10
+ end
@@ -34,15 +34,13 @@ module RelatonIec
34
34
  #
35
35
  def initialize(**args) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
36
36
  if args[:function] && !FUNCTION.include?(args[:function])
37
- warn "[relaton-iec] WARNING: invalid function \"#{args[:function]}\""
38
- warn "[relaton-iec] allowed function values are: #{FUNCTION.join(', ')}"
37
+ Util.warn "WARNING: Invalid function: `#{args[:function]}`"
38
+ Util.warn "Allowed function values are: `#{FUNCTION.join('`, `')}`"
39
39
  end
40
40
  if args[:updates_document_type] &&
41
41
  !DOCTYPES.include?(args[:updates_document_type])
42
- warn "[relaton-iec] WARNING: invalid updates_document_type " \
43
- "\"#{args[:updates_document_type]}\""
44
- warn "[relaton-iec] allowed updates_document_type values are: " \
45
- "#{DOCTYPES.join(', ')}"
42
+ Util.warn "WARNING: Invalid updates_document_type: `#{args[:updates_document_type]}`"
43
+ Util.warn "Allowed updates_document_type values are: `#{DOCTYPES.join('`, `')}`"
46
44
  end
47
45
  @function = args.delete :function
48
46
  @updates_document_type = args.delete :updates_document_type
@@ -46,9 +46,8 @@ module RelatonIec
46
46
  # @param missed_years [Array<String>]
47
47
  def warn_missing_years(pubid, year, missed_years)
48
48
  id = ref_with_year(pubid, year)
49
- warn "[relaton-iec] (\"#{id}\") TIP: " \
50
- "No match for edition year #{year}, " \
51
- "but matches exist for #{missed_years.uniq.join(', ')}."
49
+ Util.warn "(#{id}) TIP: No match for edition year `#{year}`, " \
50
+ "but matches exist for `#{missed_years.uniq.join('`, `')}`."
52
51
  end
53
52
 
54
53
  # @param code [String]
@@ -57,9 +56,7 @@ module RelatonIec
57
56
  def fetch_ref_err(code, year, missed_years) # rubocop:disable Metrics/MethodLength
58
57
  id = ref_with_year(code, year)
59
58
 
60
- warn "[relaton-iec] (\"#{id}\") " \
61
- "Not found. "\
62
- "The identifier must be exactly as shown on the IEC Webstore."
59
+ Util.warn "(#{id}) Not found."
63
60
 
64
61
  if year && missed_years.any?
65
62
  warn_missing_years(code, year, missed_years)
@@ -68,13 +65,11 @@ module RelatonIec
68
65
  # TODO: change this to pubid-iec
69
66
  has_part = /\d-\d/.match?(code)
70
67
  if has_part
71
- warn "[relaton-iec] (\"#{id}\") TIP: " \
72
- "If it cannot be found, the document may no longer be published in parts."
68
+ Util.warn "(#{id}) TIP: If it cannot be found, the document may no longer be published in parts."
73
69
 
74
70
  else
75
- warn "[relaton-iec] (\"#{id}\") TIP: " \
76
- "If you wish to cite all document parts for the reference, " \
77
- "use (\"#{code} (all parts)\")."
71
+ Util.warn "(#{id}) TIP: If you wish to cite all document parts for " \
72
+ "the reference, use `#{code} (all parts)`."
78
73
  end
79
74
 
80
75
  # TODO: streamline after integration with pubid-iec
@@ -83,9 +78,8 @@ module RelatonIec
83
78
  code.include?("#{t} ")
84
79
  end
85
80
  unless selected_doctype
86
- warn "[relaton-iec] (\"#{id}\") TIP: " \
87
- "If the document is not an International Standard, use its " \
88
- "deliverable type abbreviation (#{doctypes.join(", ")})."
81
+ Util.warn "(#{id}) TIP: If the document is not an International Standard, use its " \
82
+ "deliverable type abbreviation `#{doctypes.join('`, `')}`."
89
83
  end
90
84
 
91
85
  nil
@@ -95,7 +89,7 @@ module RelatonIec
95
89
  # @param year [String]
96
90
  # @return [String]
97
91
  def ref_with_year(ref, year)
98
- year ? [ref, year].join(":") : ref
92
+ year && !ref.match?(/:\d{4}/) ? [ref, year].join(":") : ref
99
93
  end
100
94
 
101
95
  # @param ref [String]
@@ -131,7 +125,7 @@ module RelatonIec
131
125
  # @return [RelatonIec::HitCollection]
132
126
  def search_filter(ref, year)
133
127
  code = ref.split(":").first
134
- warn "[relaton-iec] (\"#{ref_with_year(ref, year)}\") Fetching from IEC..."
128
+ Util.warn "(#{ref_with_year(ref, year)}) Fetching from Relaton repsitory ..."
135
129
  search(code)
136
130
  end
137
131
 
@@ -256,17 +250,14 @@ module RelatonIec
256
250
  id = ref_with_year(code, year)
257
251
  docid = ret[:ret].docidentifier.first.id
258
252
 
259
- if id == docid
260
- warn "[relaton-iec] (\"#{id}\") Found exact match."
261
- else
262
- warn "[relaton-iec] (\"#{id}\") Found (\"#{docid}\")."
263
- end
253
+ # if id == docid then Util.warn "(#{id}) Found exact match."
254
+ # else
255
+ Util.warn "(#{id}) Found: `#{docid}`"
256
+ # end
264
257
 
265
258
  if ret[:missed_parts]
266
- warn "[relaton-iec] (\"#{id}\") TIP: " \
267
- "\"#{code}\" also contains other parts, " \
268
- "if you want to cite all parts, use "\
269
- "(\"#{code} (all parts)\")."
259
+ Util.warn "(#{id}) TIP: `#{code}` also contains other parts, " \
260
+ "if you want to cite all parts, use `#{code} (all parts)`."
270
261
  end
271
262
 
272
263
  ret[:ret]
@@ -0,0 +1,9 @@
1
+ module RelatonIec
2
+ module Util
3
+ extend RelatonBib::Util
4
+
5
+ def self.logger
6
+ RelatonIec.configuration.logger
7
+ end
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module RelatonIec
2
- VERSION = "1.16.0".freeze
2
+ VERSION = "1.16.2".freeze
3
3
  end
data/lib/relaton_iec.rb CHANGED
@@ -7,6 +7,8 @@ require "relaton/index"
7
7
  require "relaton_iso_bib"
8
8
  require "relaton_iec/hit"
9
9
  require "relaton_iec/version"
10
+ require "relaton_iec/config"
11
+ require "relaton_iec/util"
10
12
  require "relaton_iec/iec_bibliography"
11
13
  require "relaton_iec/iec_bibliographic_item"
12
14
  require "relaton_iec/xml_parser"
@@ -20,10 +22,10 @@ module RelatonIec
20
22
  # Returns hash of XML reammar
21
23
  # @return [String]
22
24
  def grammar_hash
23
- gem_path = File.expand_path "..", __dir__
24
- grammars_path = File.join gem_path, "grammars", "*"
25
- grammars = Dir[grammars_path].sort.map { |gp| File.read gp }.join
26
- Digest::MD5.hexdigest grammars
25
+ # gem_path = File.expand_path "..", __dir__
26
+ # grammars_path = File.join gem_path, "grammars", "*"
27
+ # grammars = Dir[grammars_path].sort.map { |gp| File.read gp }.join
28
+ Digest::MD5.hexdigest RelatonIec::VERSION + RelatonIsoBib::VERSION + RelatonBib::VERSION # grammars
27
29
  end
28
30
 
29
31
  # @param code [String]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.0
4
+ version: 1.16.2
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-09-03 00:00:00.000000000 Z
11
+ date: 2023-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -109,6 +109,7 @@ files:
109
109
  - lib/relaton_iec/basic_block/stem.rb
110
110
  - lib/relaton_iec/basic_block/table.rb
111
111
  - lib/relaton_iec/basic_block/text_element.rb
112
+ - lib/relaton_iec/config.rb
112
113
  - lib/relaton_iec/data_fetcher.rb
113
114
  - lib/relaton_iec/data_parser.rb
114
115
  - lib/relaton_iec/hash_converter.rb
@@ -120,6 +121,7 @@ files:
120
121
  - lib/relaton_iec/processor.rb
121
122
  - lib/relaton_iec/statuses.yml
122
123
  - lib/relaton_iec/tc_sc_officers_note.rb
124
+ - lib/relaton_iec/util.rb
123
125
  - lib/relaton_iec/version.rb
124
126
  - lib/relaton_iec/xml_parser.rb
125
127
  - relaton_iec.gemspec