relaton-iev 1.1.6 → 1.2.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: 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.'