relaton-iev 1.1.6 → 1.2.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: e0619c9879a41243d0c4f23f6b227065d3314052c4dc3c7c245ca04681d53f69
4
- data.tar.gz: 9494af2352544f18308a3d8d7a16fa524b64f9a580d44f902f5d9735f471ce4e
3
+ metadata.gz: 1e9f323966cad4b2cdc8da16a892c108a1d307030b6a7583981870b1a1735c63
4
+ data.tar.gz: 29211d1e8918f150858de30974974aec4f5c377b9c272f3535da4e9eb77bf23c
5
5
  SHA512:
6
- metadata.gz: 901939408553d30e4bca8fac9e719b2413f4edbcc0433dcc5701044d09dacb5e47f781b8147a91ee5b003bb702913eb15521f777722d9ebddd1436daba15e1ab
7
- data.tar.gz: 83cd32add7eb3ded410f2d5e3caed88e18b04fe8a42f02b7e624fd508a46ec17ba3f9071932a9adc563e222148271a193f1caa8d772e739d71f6da47706dc25f
6
+ metadata.gz: c071c36db1d6d3440e0773ba7be15df669722942f7cc90f048386b4b7a401e5313e3c6416c0ddf1ab727e1aff2492c9f50999dedff72aea1275c2af0d39c87ec
7
+ data.tar.gz: a16118b4a890cccbd6806608416a570fb0ffd6811e1f10826d98710c56932d94b9f4064cdfe952b026bc9f0c414597a1eaa9cfdce3a9a06e72abaaf6ff6ebcd0
@@ -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
@@ -7,15 +7,17 @@ on:
7
7
  inputs:
8
8
  next_version:
9
9
  description: |
10
- Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
10
+ Next release version. Possible values: x.y.z, major, minor, patch (or pre|rc|etc).
11
+ Also, you can pass 'skip' to skip 'git tag' and do 'gem push' for the current version
11
12
  required: true
12
13
  default: 'skip'
13
- push:
14
- tags: [ v* ]
14
+ repository_dispatch:
15
+ types: [ do-release ]
16
+
15
17
 
16
18
  jobs:
17
19
  release:
18
- uses: relaton/support/.github/workflows/release.yml@master
20
+ uses: relaton/support/.github/workflows/release.yml@main
19
21
  with:
20
22
  next_version: ${{ github.event.inputs.next_version }}
21
23
  secrets:
@@ -1,3 +1,3 @@
1
1
  module RelatonIev
2
- VERSION = "1.1.6".freeze
2
+ VERSION = "1.2.0".freeze
3
3
  end
data/lib/relaton_iev.rb CHANGED
@@ -21,9 +21,8 @@ module RelatonIev
21
21
  def links_iev2iec60050part(xmldoc)
22
22
  parts = Set.new
23
23
  xmldoc.xpath(IEVPATH).each do |x|
24
- m = x&.at(".//locality[@type = 'clause']/referenceFrom")&.text
24
+ m = x.at(".//locality[@type = 'clause']/referenceFrom")&.text
25
25
  &.sub(/^(\d+).*$/, "\\1") or next
26
-
27
26
  parts << m
28
27
  x["citeas"] = @c.decode(x["citeas"]).sub(/60050/, "60050-#{m}")
29
28
  x["bibitemid"] = "IEC60050-#{m}"
@@ -40,18 +39,31 @@ module RelatonIev
40
39
  # @param bibdb [Relaton::Db, NilClass]
41
40
  # @return [Nokogiri::XML::Element]
42
41
  def refs_iev2iec60050part(xml, parts, bibdb = nil)
42
+ bibdb or return ""
43
43
  new_iev = ""
44
44
  parts.sort.each do |p|
45
- hit = bibdb&.fetch("IEC 60050-#{p}", nil, keep_year: true) or next
45
+ hit = get_iev_part(bibdb, p) or next
46
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)}")
50
- end
47
+ update_iev_refs(xml, p, hit)
51
48
  end
52
49
  new_iev
53
50
  end
54
51
 
52
+ def get_iev_part(bibdb, part)
53
+ unless hit = bibdb.fetch("IEC 60050-#{part}", nil, keep_year: true)
54
+ @err << "The IEV document 60050-#{part} that has been cited " \
55
+ "does not exist"
56
+ end
57
+ hit
58
+ end
59
+
60
+ def update_iev_refs(xml, part, hit)
61
+ xml.xpath(IEVPATH.gsub(/60050/, "60050-#{part}")).each do |x|
62
+ x["citeas"] = @c.decode(x["citeas"])
63
+ .sub(/:2011$/, ":#{hit.date[0].on(:year)}")
64
+ end
65
+ end
66
+
55
67
  def refs_iev2iec60050part1(xmldoc, part, hit)
56
68
  date = hit.date[0].on(:year)
57
69
  return "" if already_contains_ref(xmldoc, part, date)
@@ -68,12 +80,14 @@ module RelatonIev
68
80
 
69
81
  # @param xmldoc [Nokogiri::XML::Document]
70
82
  # @param bibdb [Relaton::Db, NilClass]
71
- # @return [Nokogiri::XML::Element]
83
+ # @return [Nokogiri::XML::Element], [String]
72
84
  def iev_cleanup(xmldoc, bibdb = nil)
73
85
  @c = HTMLEntities.new
74
- iev = xmldoc.at("//bibitem[docidentifier = 'IEC 60050:2011']") || return
86
+ @err = []
87
+ iev = xmldoc.at("//bibitem[docidentifier = 'IEC 60050:2011']") or
88
+ return [nil, @err]
75
89
  parts = links_iev2iec60050part(xmldoc)
76
- iev.replace(refs_iev2iec60050part(xmldoc, parts, bibdb))
90
+ [iev.replace(refs_iev2iec60050part(xmldoc, parts, bibdb)), @err]
77
91
  end
78
92
  end
79
93
  end
data/relaton_iev.gemspec CHANGED
@@ -33,6 +33,6 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency "webmock"
34
34
 
35
35
  spec.add_dependency "htmlentities", "~> 4.3.4"
36
- spec.add_dependency "nokogiri", ">= 1.14.0"
37
- spec.add_dependency "relaton", ">= 1.6"
36
+ spec.add_dependency "nokogiri", ">= 1.13.0"
37
+ spec.add_dependency "relaton", ">= 1.15"
38
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.6
4
+ version: 1.2.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-04-10 00:00:00.000000000 Z
11
+ date: 2024-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry-byebug
@@ -128,28 +128,28 @@ dependencies:
128
128
  requirements:
129
129
  - - ">="
130
130
  - !ruby/object:Gem::Version
131
- version: 1.14.0
131
+ version: 1.13.0
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
- version: 1.14.0
138
+ version: 1.13.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: relaton
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: '1.6'
145
+ version: '1.15'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: '1.6'
152
+ version: '1.15'
153
153
  description: 'RelatonIev: manipulates IEV references to IEC 60050.'
154
154
  email:
155
155
  - open.source@ribose.com
@@ -191,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
191
  - !ruby/object:Gem::Version
192
192
  version: '0'
193
193
  requirements: []
194
- rubygems_version: 3.1.6
194
+ rubygems_version: 3.3.26
195
195
  signing_key:
196
196
  specification_version: 4
197
197
  summary: 'RelatonIev: manipulates IEV references to IEC 60050.'