relaton-iev 1.1.4 → 1.1.5

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: 5fe2ce99811a0a55a1f458810612cdddc6c496eea33e43a42bc582edaceccde7
4
- data.tar.gz: a1a335641f829d1bc444061806a6982aaa10599aab57fac64223f7af0f328b3d
3
+ metadata.gz: e2cd82b551994504c5482121426073e8091bf352a511f131e70e77d75d06d74f
4
+ data.tar.gz: c11b0d0a748373256d9c559dc512f7fb0e5addacbea8cd8dc48df8a2e463f811
5
5
  SHA512:
6
- metadata.gz: beb4a621afedd7459552fdcde28dddb87278fd95a9ad9dbc6390410fa7b434abd2823f9ba32f6e0fdbca6eaa3a7119ac77f225ffe7ba5af4ffbad7ad667dea5a
7
- data.tar.gz: f06e7ec49dfb4b2e3bf61a0ae272f632bb7dbdcfdb275275c43b5657f0bb51d11c24cf7db7318b1c9752b00e2f0404956aac7e86ba2cf889f6f5fe96d36a416d
6
+ metadata.gz: 5ee22fcdc81379b42e6315975181f5ad5223db695ba2c91460ebd3d1157dc9ba338a8fca0884fecbdff586f9d87e8dffd397705ef6061d4681d8e544bd9023ee
7
+ data.tar.gz: 12a072393a803fa23c50875b643aa56c5342063d1dd2925661d5352fc0a093bf9c87ed63baec3c517c4a788bcb7465c68dbdb25cb7b23f15a1b5ab76682436a7
@@ -10,27 +10,4 @@ on:
10
10
 
11
11
  jobs:
12
12
  rake:
13
- name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
14
- runs-on: ${{ matrix.os }}
15
- continue-on-error: ${{ matrix.experimental }}
16
- strategy:
17
- fail-fast: false
18
- matrix:
19
- ruby: [ '2.7', '2.6', '2.5', '3.0' ]
20
- os: [ ubuntu-latest, windows-latest, macos-latest ]
21
- experimental: [ false ]
22
- steps:
23
- - uses: actions/checkout@v2
24
- with:
25
- submodules: true
26
-
27
- # https://github.com/ruby-debug/debase/issues/89#issuecomment-686827382
28
- - if: matrix.os == 'macos-latest' && matrix.ruby == '2.5'
29
- run: echo BUNDLE_BUILD__DEBASE="--with-cflags=\"-Wno-error=implicit-function-declaration\"" >> $GITHUB_ENV
30
-
31
- - uses: ruby/setup-ruby@v1
32
- with:
33
- ruby-version: ${{ matrix.ruby }}
34
- bundler-cache: true
35
-
36
- - run: bundle exec rake
13
+ uses: relaton/support/.github/workflows/rake.yml@master
@@ -0,0 +1,22 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: release
4
+
5
+ on:
6
+ workflow_dispatch:
7
+ inputs:
8
+ next_version:
9
+ description: |
10
+ Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
11
+ required: true
12
+ default: 'skip'
13
+ push:
14
+ tags: [ v* ]
15
+
16
+ jobs:
17
+ release:
18
+ uses: relaton/support/.github/workflows/release.yml@master
19
+ with:
20
+ next_version: ${{ github.event.inputs.next_version }}
21
+ secrets:
22
+ rubygems-api-key: ${{ secrets.RELATON_CI_RUBYGEMS_API_KEY }}
data/Gemfile CHANGED
@@ -2,3 +2,4 @@ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in relaton_iev.gemspec
4
4
  gemspec
5
+ gem "debug"
@@ -1,3 +1,3 @@
1
1
  module RelatonIev
2
- VERSION = "1.1.4".freeze
2
+ VERSION = "1.1.5".freeze
3
3
  end
data/lib/relaton_iev.rb CHANGED
@@ -1,10 +1,15 @@
1
1
  require "relaton"
2
2
  require "relaton_iev/version"
3
+ require "htmlentities"
3
4
 
4
5
  module RelatonIev
5
6
  class Error < StandardError; end
6
7
 
7
8
  class << self
9
+ IEVPATH = <<~IEV.strip.freeze
10
+ //*[@citeas = 'IEC 60050:2011' or @citeas = 'IEC 60050:2011' or @citeas = 'IEC&#xa0;60050:2011' or @citeas = 'IEC&#xA0;60050:2011']
11
+ IEV
12
+
8
13
  # converts generic IEV citation to citation of IEC 60050-n
9
14
  # assumes IEV citations are of form
10
15
  # <eref type="inline" bibitemid="a" citeas="IEC 60050">
@@ -15,12 +20,12 @@ module RelatonIev
15
20
  # @return [Set<String>]
16
21
  def links_iev2iec60050part(xmldoc)
17
22
  parts = Set.new
18
- xmldoc.xpath("//*[@citeas = 'IEC 60050:2011']").each do |x|
23
+ xmldoc.xpath(IEVPATH).each do |x|
19
24
  m = x&.at(".//locality[@type = 'clause']/referenceFrom")&.text
20
25
  &.sub(/^(\d+).*$/, "\\1") or next
21
26
 
22
27
  parts << m
23
- x["citeas"] = x["citeas"].sub(/60050/, "60050-#{m}")
28
+ x["citeas"] = @c.decode(x["citeas"]).sub(/60050/, "60050-#{m}")
24
29
  x["bibitemid"] = "IEC60050-#{m}"
25
30
  end
26
31
  parts
@@ -29,18 +34,19 @@ module RelatonIev
29
34
  # replace generic IEV reference with references to all extracted
30
35
  # IEV parts
31
36
  #
32
- # @param xmodoc [Nokogiri::XML::Document]
37
+ # @param xml [Nokogiri::XML::Document]
33
38
  # @param parts [Set<String>]
34
39
  # @param iev [Nokogiri::XML::Element]
35
40
  # @param bibdb [Relaton::Db, NilClass]
36
41
  # @return [Nokogiri::XML::Element]
37
- def refs_iev2iec60050part(xmldoc, parts, bibdb = nil)
42
+ def refs_iev2iec60050part(xml, parts, bibdb = nil)
38
43
  new_iev = ""
39
44
  parts.sort.each do |p|
40
45
  hit = bibdb&.fetch("IEC 60050-#{p}", nil, keep_year: true) or next
41
- new_iev += refs_iev2iec60050part1(xmldoc, p, hit)
42
- xmldoc.xpath("//*[@citeas = 'IEC 60050-#{p}:2011']").each do |x|
43
- x["citeas"] = x["citeas"].sub(/:2011$/, ":#{hit.date[0].on(:year)}")
46
+ new_iev += refs_iev2iec60050part1(xml, p, hit)
47
+ xml.xpath(IEVPATH.gsub(/60050/, "60050-#{p}")).each do |x|
48
+ x["citeas"] = @c.decode(x["citeas"])
49
+ .sub(/:2011$/, ":#{hit.date[0].on(:year)}")
44
50
  end
45
51
  end
46
52
  new_iev
@@ -55,8 +61,8 @@ module RelatonIev
55
61
  end
56
62
 
57
63
  def already_contains_ref(xmldoc, part, date)
58
- xmldoc.at("//bibliography//bibitem[not(ancestor::bibitem)]/"\
59
- "docidentifier[@type = 'IEC']"\
64
+ xmldoc.at("//bibliography//bibitem[not(ancestor::bibitem)]/" \
65
+ "docidentifier[@type = 'IEC']" \
60
66
  "[text() = 'IEC 60050-#{part}:#{date}']")
61
67
  end
62
68
 
@@ -64,6 +70,7 @@ module RelatonIev
64
70
  # @param bibdb [Relaton::Db, NilClass]
65
71
  # @return [Nokogiri::XML::Element]
66
72
  def iev_cleanup(xmldoc, bibdb = nil)
73
+ @c = HTMLEntities.new
67
74
  iev = xmldoc.at("//bibitem[docidentifier = 'IEC 60050:2011']") || return
68
75
  parts = links_iev2iec60050part(xmldoc)
69
76
  iev.replace(refs_iev2iec60050part(xmldoc, parts, bibdb))
data/relaton_iev.gemspec CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "vcr"
33
33
  spec.add_development_dependency "webmock"
34
34
 
35
+ spec.add_dependency "htmlentities", "~> 4.3.4"
35
36
  spec.add_dependency "nokogiri", "~> 1.13.0"
36
37
  spec.add_dependency "relaton", ">= 1.6"
37
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-iev
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-11 00:00:00.000000000 Z
11
+ date: 2023-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry-byebug
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: htmlentities
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 4.3.4
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 4.3.4
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: nokogiri
113
127
  requirement: !ruby/object:Gem::Requirement
@@ -144,6 +158,7 @@ extensions: []
144
158
  extra_rdoc_files: []
145
159
  files:
146
160
  - ".github/workflows/rake.yml"
161
+ - ".github/workflows/release.yml"
147
162
  - ".gitignore"
148
163
  - ".rspec"
149
164
  - ".rubocop.yml"
@@ -161,7 +176,7 @@ homepage: https://github.com/metanorma/relaton-iev
161
176
  licenses:
162
177
  - MIT
163
178
  metadata: {}
164
- post_install_message:
179
+ post_install_message:
165
180
  rdoc_options: []
166
181
  require_paths:
167
182
  - lib
@@ -176,8 +191,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
191
  - !ruby/object:Gem::Version
177
192
  version: '0'
178
193
  requirements: []
179
- rubygems_version: 3.3.9
180
- signing_key:
194
+ rubygems_version: 3.1.6
195
+ signing_key:
181
196
  specification_version: 4
182
197
  summary: 'RelatonIev: manipulates IEV references to IEC 60050.'
183
198
  test_files: []