relaton-ecma 1.16.1 → 1.17.0

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: 79a0e5c939fec089e35a4f10ea7c62bdbc9ca1cea332dbbdb61cee01fc255b30
4
- data.tar.gz: 5c9c499101971798f03ff2953bf5d4a7693a9edbac031bf7793ce568df97582c
3
+ metadata.gz: 638cd46fbc98517ba0a0668de0c0a6b3a9d7cd5a23a558cda74bd6d44a71c780
4
+ data.tar.gz: 449c085cd3ad3871fde55d371d43fd763438a731aaa588b1752df4d8da9d7350
5
5
  SHA512:
6
- metadata.gz: 40bca3bd29a6fbd8c668ba2dca1ed9fedfeb03bc248162b5f5b702d1fd80bd32fc56c33e83e3c0a35e82eb9e4699dd84396c6f24e9bfa8cc9203639c6cee2ca4
7
- data.tar.gz: 7eccd989b4bf12be08f519b8f7564aab8bdd823929e0c3206a903f5f0679460458e54ea89eb2ca7b2d75dd20b4845268b821d8fc4c5766ed1e27496e41c247b8
6
+ metadata.gz: 91ec74af039dcdd88dd0f9e23a204f8527356c85afd2f7f4a3a9d083073a991c421b27458cae7094decda5629a7f68aacf6562c7a000a919c53b73b28928aa55
7
+ data.tar.gz: cdf2165763797f45889e6183571b8ff7a9f572759ac1eba68a7063b6f5a9e529524a508c9ce44ba6b5db496966e7910728150c7487c0f63aaf2fda995ad730c0
data/README.adoc CHANGED
@@ -29,6 +29,20 @@ Or install it yourself as:
29
29
 
30
30
  == Usage
31
31
 
32
+ === Configuration
33
+
34
+ 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 `RelatonEcma.configure` block.
35
+
36
+ [source,ruby]
37
+ ----
38
+ require 'relaton_ecma'
39
+ => true
40
+
41
+ RelatonEcma.configure do |config|
42
+ config.logger.level = Logger::DEBUG
43
+ end
44
+ ----
45
+
32
46
  === Fetch documents
33
47
 
34
48
  Documents can be fetched by reference. The structure of the reference depends on the type of the document. There are three types of documents:
@@ -45,27 +59,24 @@ ECMA mementos have the following reference structure: `ECMA MEM/{YEAR}`. Where:
45
59
 
46
60
  [source,ruby]
47
61
  ----
48
- require 'relaton_ecma'
49
- => true
50
-
51
62
  # fetch ECMA standard
52
63
  item = RelatonEcma::EcmaBibliography.get 'ECMA-6'
53
- [relaton-ecma] ("ECMA-6") fetching...
54
- [relaton-ecma] ("ECMA-6") found ECMA-6
64
+ [relaton-ecma] (ECMA-6) Fetching from Relaton repository ...
65
+ [relaton-ecma] (ECMA-6) Found: `ECMA-6`
55
66
  #<RelatonEcma::BibliographicItem:0x00007fc645b11c10
56
67
  ...
57
68
 
58
69
  # fetch ECMA standard with edition and volume
59
70
  RelatonEcma::EcmaBibliography.get "ECMA-269 ed3 vol2"
60
- [relaton-ecma] ("ECMA-269 ed3 vol2") fetching...
61
- [relaton-ecma] ("ECMA-269 ed3 vol2") found ECMA-269
71
+ [relaton-ecma] (ECMA-269 ed3 vol2) Fetching from Relaton repository ...
72
+ [relaton-ecma] (ECMA-269 ed3 vol2) Found: `ECMA-269`
62
73
  => #<RelatonEcma::BibliographicItem:0x0000000106ac8210
63
74
  ...
64
75
 
65
76
  # fetch the last edition of ECMA standard
66
77
  bib = RelatonEcma::EcmaBibliography.get "ECMA-269"
67
- [relaton-ecma] ("ECMA-269") fetching...
68
- [relaton-ecma] ("ECMA-269") found ECMA-269
78
+ [relaton-ecma] (ECMA-269) Fetching from Relaton repository ...
79
+ [relaton-ecma] (ECMA-269) Found: `ECMA-269`
69
80
  => #<RelatonEcma::BibliographicItem:0x000000010a408480
70
81
  ...
71
82
 
@@ -74,8 +85,8 @@ bib.edition.content
74
85
 
75
86
  # fetch the first volume of ECMA standard
76
87
  bib = RelatonEcma::EcmaBibliography.get "ECMA-269 ed3"
77
- [relaton-ecma] ("ECMA-269 ed3") fetching...
78
- [relaton-ecma] ("ECMA-269 ed3") found ECMA-269
88
+ [relaton-ecma] (ECMA-269 ed3) Fetching from Relaton repository ...
89
+ [relaton-ecma] (ECMA-269 ed3) Found: `ECMA-269`
79
90
  => #<RelatonEcma::BibliographicItem:0x000000010a3ed0e0
80
91
  ...
81
92
 
@@ -84,22 +95,22 @@ bib.extent.first.reference_from
84
95
 
85
96
  # fetch ECMA technical report
86
97
  RelatonEcma::EcmaBibliography.get 'ECMA TR/18'
87
- [relaton-ecma] ("ECMA TR/18") fetching...
88
- [relaton-ecma] ("ECMA TR/18") found ECMA TR/18
98
+ [relaton-ecma] (ECMA TR/18) Fetching from Relaton repository ...
99
+ [relaton-ecma] (ECMA TR/18) Found: `ECMA TR/18`
89
100
  => #<RelatonEcma::BibliographicItem:0x00007fc645c00cc0
90
101
  ...
91
102
 
92
103
  # fetch ECMA memento
93
104
  RelatonEcma::EcmaBibliography.get "ECMA MEM/2021"
94
- [relaton-ecma] ("ECMA MEM/2021") fetching...
95
- [relaton-ecma] ("ECMA MEM/2021") found ECMA MEM/2021
105
+ [relaton-ecma] (ECMA MEM/2021) Fetching from Relaton repository ...
106
+ [relaton-ecma] (ECMA MEM/2021) Found: `ECMA MEM/2021`
96
107
  => #<RelatonEcma::BibliographicItem:0x00007fc665b2f060
97
108
  ...
98
109
 
99
110
  # Return nil if a document doesn't exist.
100
111
  RelatonEcma::EcmaBibliography.get '1111'
101
- [relaton-ecma] ("1111") fetching...
102
- [relaton-ecma] WARNING no match found online for 1111. The code must be exactly like it is on the standards website.
112
+ [relaton-ecma] (1111) Fetching from Relaton repository ...
113
+ [relaton-ecma] (1111) Not found.
103
114
  => nil
104
115
  ----
105
116
 
@@ -346,6 +346,8 @@
346
346
  <ref name="keyword"/>
347
347
  <ref name="xref"/>
348
348
  <ref name="hyperlink"/>
349
+ <ref name="index"/>
350
+ <ref name="index-xref"/>
349
351
  </choice>
350
352
  </oneOrMore>
351
353
  </element>
@@ -623,6 +625,8 @@
623
625
  <ref name="eref"/>
624
626
  <ref name="xref"/>
625
627
  <ref name="hyperlink"/>
628
+ <ref name="index"/>
629
+ <ref name="index-xref"/>
626
630
  </choice>
627
631
  </zeroOrMore>
628
632
  </element>
@@ -636,6 +640,8 @@
636
640
  <ref name="eref"/>
637
641
  <ref name="xref"/>
638
642
  <ref name="hyperlink"/>
643
+ <ref name="index"/>
644
+ <ref name="index-xref"/>
639
645
  </choice>
640
646
  </zeroOrMore>
641
647
  </element>
@@ -648,6 +654,8 @@
648
654
  <ref name="eref"/>
649
655
  <ref name="xref"/>
650
656
  <ref name="hyperlink"/>
657
+ <ref name="index"/>
658
+ <ref name="index-xref"/>
651
659
  </choice>
652
660
  </zeroOrMore>
653
661
  </element>
@@ -655,7 +663,11 @@
655
663
  <define name="keyword">
656
664
  <element name="keyword">
657
665
  <zeroOrMore>
658
- <ref name="PureTextElement"/>
666
+ <choice>
667
+ <ref name="PureTextElement"/>
668
+ <ref name="index"/>
669
+ <ref name="index-xref"/>
670
+ </choice>
659
671
  </zeroOrMore>
660
672
  </element>
661
673
  </define>
@@ -676,7 +688,11 @@
676
688
  <define name="strike">
677
689
  <element name="strike">
678
690
  <zeroOrMore>
679
- <ref name="PureTextElement"/>
691
+ <choice>
692
+ <ref name="PureTextElement"/>
693
+ <ref name="index"/>
694
+ <ref name="index-xref"/>
695
+ </choice>
680
696
  </zeroOrMore>
681
697
  </element>
682
698
  </define>
data/grammars/biblio.rng CHANGED
@@ -942,6 +942,7 @@
942
942
  <value>obsoleted</value>
943
943
  <value>confirmed</value>
944
944
  <value>updated</value>
945
+ <value>corrected</value>
945
946
  <value>issued</value>
946
947
  <value>transmitted</value>
947
948
  <value>copied</value>
@@ -1,7 +1,7 @@
1
1
  module RelatonEcma
2
2
  class DataParser
3
- MATTRS = %i[docid title date link].freeze
4
- ATTRS = MATTRS + %i[abstract relation edition].freeze
3
+ MATTRS = %i[docid title date link doctype].freeze
4
+ ATTRS = MATTRS + %i[abstract relation edition doctype].freeze
5
5
 
6
6
  #
7
7
  # Initialize parser
@@ -11,7 +11,7 @@ module RelatonEcma
11
11
  def initialize(hit)
12
12
  @hit = hit
13
13
  @bib = {
14
- type: "standard", language: ["en"], script: ["Latn"], place: ["Geneva"], doctype: "document"
14
+ type: "standard", language: ["en"], script: ["Latn"], place: ["Geneva"]
15
15
  }
16
16
  @agent = Mechanize.new
17
17
  end
@@ -211,5 +211,11 @@ module RelatonEcma
211
211
  content = "\"Memento #{year}\" for year #{year}"
212
212
  [{ content: content, language: "en", script: "Latn" }]
213
213
  end
214
+
215
+ def fetch_doctype
216
+ RelatonBib::DocumentType.new type: "document"
217
+ end
218
+
219
+ alias_method :fetch_mem_doctype, :fetch_doctype
214
220
  end
215
221
  end
@@ -40,14 +40,13 @@ module RelatonEcma
40
40
  # @param opts [Hash] not used
41
41
  # @return [RelatonEcma::BibliographicItem] Relaton of reference
42
42
  def get(code, _year = nil, _opts = {})
43
- Util.warn "(#{code}) fetching..."
43
+ Util.warn "(#{code}) Fetching from Relaton repository ..."
44
44
  result = fetch_doc(code)
45
45
  if result
46
- Util.warn "(#{code}) found `#{result.docidentifier.first.id}`"
46
+ Util.warn "(#{code}) Found: `#{result.docidentifier.first.id}`"
47
47
  # item
48
48
  else
49
- Util.warn "(#{code}) WARNING no match found online for `#{code}`. " \
50
- "The code must be exactly like it is on the standards website."
49
+ Util.warn "(#{code}) Not found."
51
50
  end
52
51
  result
53
52
  end
@@ -1,11 +1,12 @@
1
1
  module RelatonEcma
2
- class HashConverter < RelatonBib::HashConverter
3
- class << self
4
- # @param item_hash [Hash]
5
- # @return [RelatonEcma::BibliographicItem]
6
- def bib_item(item_hash)
7
- BibliographicItem.new(**item_hash)
8
- end
2
+ module HashConverter
3
+ include RelatonBib::HashConverter
4
+ extend self
5
+
6
+ # @param item_hash [Hash]
7
+ # @return [RelatonEcma::BibliographicItem]
8
+ def bib_item(item_hash)
9
+ BibliographicItem.new(**item_hash)
9
10
  end
10
11
  end
11
12
  end
@@ -1,3 +1,3 @@
1
1
  module RelatonEcma
2
- VERSION = "1.16.1".freeze
2
+ VERSION = "1.17.0".freeze
3
3
  end
data/relaton_ecma.gemspec CHANGED
@@ -28,6 +28,6 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
28
28
  spec.require_paths = ["lib"]
29
29
 
30
30
  spec.add_dependency "mechanize", "~> 2.8.0"
31
- spec.add_dependency "relaton-bib", "~> 1.16.0"
31
+ spec.add_dependency "relaton-bib", "~> 1.17.0"
32
32
  spec.add_dependency "relaton-index", "~> 0.2.4"
33
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-ecma
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.1
4
+ version: 1.17.0
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-20 00:00:00.000000000 Z
11
+ date: 2023-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.16.0
33
+ version: 1.17.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.16.0
40
+ version: 1.17.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: relaton-index
43
43
  requirement: !ruby/object:Gem::Requirement