relaton-iev 0.1.2 → 1.1.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: 9091d0dfddcb14c0c1631964a041402bb1ac8603134618d53439058389c28360
4
- data.tar.gz: c773a37e33181fd1ee673e5e65546ad30af0db03c7e90428e6514673368d8d71
3
+ metadata.gz: 0de88901d509f5420300ab1e23c96b5f573d444e516aae83c26d4495f12e5986
4
+ data.tar.gz: 82bd64527c49ca8a93e62542b3135db2f6f0abe17527517ffe1e7b0cebfcb173
5
5
  SHA512:
6
- metadata.gz: c191a55db432cf7c465001413b152a1c52b158697ecd518aafb85ea39a07bb7b00aad51b3a7210595751d8d2e73d50336a802a87a82bd144d69568e8077ba4ca
7
- data.tar.gz: 4d48aac6a09308e049fddf1be2ee69a33186d981a7ab56c1f74aa98b0e98df9d263567b258fbc703e542c1b78aa354aac23c9190b9a394e1d5384afb67eedf3d
6
+ metadata.gz: b962c9dcd052b7131a494ecc29b2943401e52057193ec07c5d6aee2a99570725265b17afc75654a4c390ac6db94de7b4e140ac64b586bd79b4bd85e3479c647c
7
+ data.tar.gz: 42808e1692e8cc54928d932988a9b85dad3ac10eab458016453b8d50bf0fee33d69813d86e3a9eb9f2adc7eda6b9cdb2917e446488d122c90996c3cdbd3b6f46
@@ -1,14 +1,18 @@
1
- # Auto-generated !!! Do not edit it manually
2
- # use ci-master https://github.com/metanorma/metanorma-build-scripts
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
3
  name: macos
4
4
 
5
- on: [push]
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
6
9
 
7
10
  jobs:
8
11
  test-macos:
9
12
  name: Test on Ruby ${{ matrix.ruby }} macOS
10
13
  runs-on: macos-latest
11
14
  strategy:
15
+ fail-fast: false
12
16
  matrix:
13
17
  ruby: [ '2.6', '2.5', '2.4' ]
14
18
  steps:
@@ -20,7 +24,7 @@ jobs:
20
24
  architecture: 'x64'
21
25
  - name: Update gems
22
26
  run: |
23
- sudo gem install bundler -v "~> 2" --force
27
+ sudo gem install bundler --force
24
28
  bundle install --jobs 4 --retry 3
25
29
  - name: Run specs
26
30
  run: |
@@ -1,14 +1,18 @@
1
- # Auto-generated !!! Do not edit it manually
2
- # use ci-master https://github.com/metanorma/metanorma-build-scripts
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
3
  name: ubuntu
4
4
 
5
- on: [push]
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
6
9
 
7
10
  jobs:
8
11
  test-linux:
9
12
  name: Test on Ruby ${{ matrix.ruby }} Ubuntu
10
13
  runs-on: ubuntu-latest
11
14
  strategy:
15
+ fail-fast: false
12
16
  matrix:
13
17
  ruby: [ '2.6', '2.5', '2.4' ]
14
18
  steps:
@@ -20,8 +24,20 @@ jobs:
20
24
  architecture: 'x64'
21
25
  - name: Update gems
22
26
  run: |
23
- gem install bundler -v "~> 2"
27
+ gem install bundler
24
28
  bundle install --jobs 4 --retry 3
25
29
  - name: Run specs
26
30
  run: |
27
31
  bundle exec rake
32
+ - name: Trigger dependent repositories
33
+ if: github.ref == 'refs/heads/master' && matrix.ruby == '2.6'
34
+ env:
35
+ GH_USERNAME: ${{ secrets.PAT_USERNAME }}
36
+ GH_ACCESS_TOKEN: ${{ secrets.PAT_TOKEN }}
37
+ run: |
38
+ curl -LO --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/trigger-gh-actions.sh
39
+ [[ -f ".github/workflows/dependent_repos.env" ]] && source .github/workflows/dependent_repos.env
40
+ for repo in $DEPENDENT_REPOS
41
+ do
42
+ sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY "{ \"ref\": \"${GITHUB_REF}\" }"
43
+ done
@@ -1,14 +1,18 @@
1
- # Auto-generated !!! Do not edit it manually
2
- # use ci-master https://github.com/metanorma/metanorma-build-scripts
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
3
  name: windows
4
4
 
5
- on: [push]
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
6
9
 
7
10
  jobs:
8
11
  test-windows:
9
12
  name: Test on Ruby ${{ matrix.ruby }} Windows
10
13
  runs-on: windows-latest
11
14
  strategy:
15
+ fail-fast: false
12
16
  matrix:
13
17
  ruby: [ '2.6', '2.5', '2.4' ]
14
18
  steps:
@@ -21,9 +25,8 @@ jobs:
21
25
  - name: Update gems
22
26
  shell: pwsh
23
27
  run: |
24
- gem install bundler -v "~> 2"
28
+ gem install bundler
25
29
  bundle config --local path vendor/bundle
26
- bundle update
27
30
  bundle install --jobs 4 --retry 3
28
31
  - name: Run specs
29
32
  run: |
@@ -1,9 +1,12 @@
1
1
  = RelatonIev Refactor IEV reference
2
2
 
3
3
  image:https://img.shields.io/gem/v/relaton-iev.svg["Gem Version", link="https://rubygems.org/gems/relaton-iev"]
4
- image:https://travis-ci.com/metanorma/relaton-iev.svg?branch=master["Build Status", link="https://travis-ci.com/metanorma/relaton-iev"]
5
- image:https://codeclimate.com/github/metanorma/relaton-iev/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/relaton-iev"]
6
- image:https://ci.appveyor.com/api/projects/status/qdadxv7rqfy33p66?svg=true["Appveyor Build Status", link="https://ci.appveyor.com/project/ribose/relaton-iev"]
4
+ image:https://github.com/relaton/relaton-iev/workflows/macos/badge.svg["Build Status (macOS)", link="https://github.com/relaton/relaton-iev/actions?workflow=macos"]
5
+ image:https://github.com/relaton/relaton-iev/workflows/windows/badge.svg["Build Status (Windows)", link="https://github.com/relaton/relaton-iev/actions?workflow=windows"]
6
+ image:https://github.com/relaton/relaton-iev/workflows/ubuntu/badge.svg["Build Status (Ubuntu)", link="https://github.com/relaton/relaton-iev/actions?workflow=ubuntu"]
7
+ image:https://codeclimate.com/github/relaton/relaton-iev/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/relaton/relaton-iev"]
8
+ image:https://img.shields.io/github/issues-pr-raw/relaton/relaton-iev.svg["Pull Requests", link="https://github.com/relaton/relaton-iev/pulls"]
9
+ image:https://img.shields.io/github/commits-since/relaton/relaton-iev/latest.svg["Commits since latest",link="https://github.com/relaton/relaton-iev/releases"]
7
10
 
8
11
 
9
12
  Metanorma references IEV as a single source, IEC 60050. In reality, IEC 60050 is dozens of separate documents, each with their own part number (corresponding to the starting number of the clause reference; so IEV clause 101-2-3 is actually IEC 60050-101 clause 101-2-3.) This gem helps rewrite the single IEV reference in a Metanorma document, out into all the references it actually corresponds to in the given document. It does so by parsing all first-level clauses in citations to IEV, replacing each by a reference to the IEC 60050 part corresponding to that clause, then looking up each of the IEC 60050 part documents using `relaton-iec`, and inserting those references into the XML document.
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This file was generated by Bundler.
4
+ #
5
+ # The application 'rspec' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require "pathname"
10
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path(
11
+ "../../Gemfile", Pathname.new(__FILE__).realpath
12
+ )
13
+
14
+ require "rubygems"
15
+ require "bundler/setup"
16
+
17
+ load Gem.bin_path("rspec-core", "rspec")
18
+
@@ -16,7 +16,7 @@ module RelatonIev
16
16
  parts = Set.new
17
17
  xmldoc.xpath("//eref[@citeas = 'IEC 60050:2011'] | "\
18
18
  "//origin[@citeas = 'IEC 60050:2011']").each do |x|
19
- cl = x&.at("./locality[@type = 'clause']/referenceFrom")&.text || next
19
+ cl = x&.at(".//locality[@type = 'clause']/referenceFrom")&.text || next
20
20
  m = /^(\d+)/.match cl || next
21
21
  parts << m[0]
22
22
  x["citeas"] = x["citeas"].sub(/60050/, "60050-#{m[0]}")
@@ -37,8 +37,8 @@ module RelatonIev
37
37
  new_iev = ""
38
38
  parts.sort.each do |p|
39
39
  hit = bibdb&.fetch("IEC 60050-#{p}", nil, keep_year: true) || next
40
- new_iev += hit.to_xml.sub(/ id="[^"]+"/, %{ id="IEC60050-#{p}"})
41
- date = hit.date[0].on.year
40
+ date = hit.date[0].on(:year)
41
+ new_iev += refsIev2iec60050part1(xmldoc, p, hit)
42
42
  xmldoc.xpath("//*[@citeas = 'IEC 60050-#{p}:2011']").each do |x|
43
43
  x["citeas"] = x["citeas"].sub(/:2011$/, ":#{date}")
44
44
  end
@@ -46,6 +46,19 @@ module RelatonIev
46
46
  iev.replace(new_iev)
47
47
  end
48
48
 
49
+ def refsIev2iec60050part1(xmldoc, p, hit)
50
+ date = hit.date[0].on(:year)
51
+ return "" if already_contains_ref(xmldoc, p, date)
52
+ id = xmldoc.at("//bibitem[@id = 'IEC60050-#{p}']") ? "-1" : ""
53
+ hit.to_xml.sub(/ id="[^"]+"/, %{ id="IEC60050-#{p}#{id}"})
54
+ end
55
+
56
+ def already_contains_ref(xmldoc, p, date)
57
+ xmldoc.at("//bibliography//bibitem[not(ancestor::bibitem)]/"\
58
+ "docidentifier[@type = 'IEC']"\
59
+ "[text() = 'IEC 60050-#{p}:#{date}']")
60
+ end
61
+
49
62
  # @param xmldoc [Nokogiri::XML::Document]
50
63
  # @param bibdb [Relaton::Db, NilClass]
51
64
  # @return [Nokogiri::XML::Element]
@@ -1,3 +1,3 @@
1
1
  module RelatonIev
2
- VERSION = "0.1.2".freeze
2
+ VERSION = "1.1.0".freeze
3
3
  end
@@ -21,7 +21,6 @@ Gem::Specification.new do |spec|
21
21
  spec.require_paths = ["lib"]
22
22
  spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
23
23
 
24
- spec.add_development_dependency "bundler", "~> 2.0"
25
24
  spec.add_development_dependency "debase"
26
25
  spec.add_development_dependency "pry-byebug"
27
26
  spec.add_development_dependency "rake", "~> 10.0"
@@ -32,5 +31,5 @@ Gem::Specification.new do |spec|
32
31
  spec.add_development_dependency "webmock"
33
32
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
34
33
 
35
- spec.add_dependency "relaton", "~> 0.6.0"
34
+ spec.add_dependency "relaton", ">= 1.6"
36
35
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-iev
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 1.1.0
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: 2019-12-22 00:00:00.000000000 Z
11
+ date: 2020-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: debase
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -154,16 +140,16 @@ dependencies:
154
140
  name: relaton
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
- - - "~>"
143
+ - - ">="
158
144
  - !ruby/object:Gem::Version
159
- version: 0.6.0
145
+ version: '1.6'
160
146
  type: :runtime
161
147
  prerelease: false
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
- - - "~>"
150
+ - - ">="
165
151
  - !ruby/object:Gem::Version
166
- version: 0.6.0
152
+ version: '1.6'
167
153
  description: 'RelatonIev: manipulates IEV references to IEC 60050.'
168
154
  email:
169
155
  - open.source@ribose.com
@@ -178,11 +164,11 @@ files:
178
164
  - ".rspec"
179
165
  - ".rubocop.yml"
180
166
  - Gemfile
181
- - Gemfile.lock
182
167
  - LICENSE.txt
183
168
  - README.adoc
184
169
  - Rakefile
185
170
  - bin/console
171
+ - bin/rspec
186
172
  - bin/setup
187
173
  - lib/relaton_iev.rb
188
174
  - lib/relaton_iev/version.rb
@@ -191,7 +177,7 @@ homepage: https://github.com/metanorma/relaton-iev
191
177
  licenses:
192
178
  - MIT
193
179
  metadata: {}
194
- post_install_message:
180
+ post_install_message:
195
181
  rdoc_options: []
196
182
  require_paths:
197
183
  - lib
@@ -206,9 +192,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
206
192
  - !ruby/object:Gem::Version
207
193
  version: '0'
208
194
  requirements: []
209
- rubyforge_project:
210
- rubygems_version: 2.7.6
211
- signing_key:
195
+ rubygems_version: 3.0.3
196
+ signing_key:
212
197
  specification_version: 4
213
198
  summary: 'RelatonIev: manipulates IEV references to IEC 60050.'
214
199
  test_files: []
@@ -1,128 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- relaton-iev (0.1.1)
5
- relaton (~> 0.5.0)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- addressable (2.7.0)
11
- public_suffix (>= 2.0.2, < 5.0)
12
- byebug (11.0.1)
13
- cnccs (0.1.5)
14
- coderay (1.1.2)
15
- crack (0.4.3)
16
- safe_yaml (~> 1.0.0)
17
- debase (0.2.4.1)
18
- debase-ruby_core_source (>= 0.10.2)
19
- debase-ruby_core_source (0.10.7)
20
- diff-lcs (1.3)
21
- docile (1.3.2)
22
- equivalent-xml (0.6.0)
23
- nokogiri (>= 1.4.3)
24
- faraday (0.17.1)
25
- multipart-post (>= 1.2, < 3)
26
- gb-agencies (0.0.6)
27
- hashdiff (1.0.0)
28
- isoics (0.1.8)
29
- json (2.2.0)
30
- method_source (0.9.2)
31
- mini_portile2 (2.4.0)
32
- multipart-post (2.1.1)
33
- nokogiri (1.10.5)
34
- mini_portile2 (~> 2.4.0)
35
- pry (0.12.2)
36
- coderay (~> 1.1.0)
37
- method_source (~> 0.9.0)
38
- pry-byebug (3.7.0)
39
- byebug (~> 11.0)
40
- pry (~> 0.10)
41
- public_suffix (4.0.1)
42
- rake (10.5.0)
43
- relaton (0.5.19)
44
- relaton-calconnect (~> 0.1.0)
45
- relaton-gb (~> 0.6.0)
46
- relaton-iec (~> 0.4.0)
47
- relaton-ietf (~> 0.6.0)
48
- relaton-iso (~> 0.6.0)
49
- relaton-itu (~> 0.3.0)
50
- relaton-nist (~> 0.3.0)
51
- relaton-ogc (~> 0.1.0)
52
- relaton-bib (0.3.12)
53
- addressable
54
- nokogiri
55
- relaton-calconnect (0.1.2)
56
- faraday
57
- relaton-iso-bib (~> 0.3.0)
58
- relaton-gb (0.6.8)
59
- cnccs (~> 0.1.1)
60
- gb-agencies (~> 0.0.1)
61
- relaton-iso-bib (~> 0.3.0)
62
- relaton-iec (0.4.12)
63
- addressable
64
- relaton-iso-bib (~> 0.3.0)
65
- relaton-ietf (0.6.10)
66
- relaton-bib (~> 0.3.0)
67
- relaton-iso (0.6.10)
68
- relaton-iec (~> 0.4.0)
69
- relaton-iso-bib (~> 0.3.0)
70
- relaton-iso-bib (0.3.12)
71
- isoics (~> 0.1.6)
72
- relaton-bib (~> 0.3.0)
73
- ruby_deep_clone (~> 0.8.0)
74
- relaton-itu (0.3.11)
75
- relaton-iso-bib (~> 0.3.0)
76
- relaton-nist (0.3.9)
77
- relaton-bib (~> 0.3.0)
78
- rubyzip
79
- relaton-ogc (0.1.4)
80
- faraday
81
- relaton-iso-bib (~> 0.3.0)
82
- rspec (3.8.0)
83
- rspec-core (~> 3.8.0)
84
- rspec-expectations (~> 3.8.0)
85
- rspec-mocks (~> 3.8.0)
86
- rspec-core (3.8.2)
87
- rspec-support (~> 3.8.0)
88
- rspec-expectations (3.8.4)
89
- diff-lcs (>= 1.2.0, < 2.0)
90
- rspec-support (~> 3.8.0)
91
- rspec-mocks (3.8.1)
92
- diff-lcs (>= 1.2.0, < 2.0)
93
- rspec-support (~> 3.8.0)
94
- rspec-support (3.8.2)
95
- ruby-debug-ide (0.7.0)
96
- rake (>= 0.8.1)
97
- ruby_deep_clone (0.8.0)
98
- rubyzip (2.0.0)
99
- safe_yaml (1.0.5)
100
- simplecov (0.17.0)
101
- docile (~> 1.1)
102
- json (>= 1.8, < 3)
103
- simplecov-html (~> 0.10.0)
104
- simplecov-html (0.10.2)
105
- vcr (5.0.0)
106
- webmock (3.7.2)
107
- addressable (>= 2.3.6)
108
- crack (>= 0.3.2)
109
- hashdiff (>= 0.4.0, < 2.0.0)
110
-
111
- PLATFORMS
112
- ruby
113
-
114
- DEPENDENCIES
115
- bundler (~> 2.0)
116
- debase
117
- equivalent-xml (~> 0.6)
118
- pry-byebug
119
- rake (~> 10.0)
120
- relaton-iev!
121
- rspec (~> 3.0)
122
- ruby-debug-ide
123
- simplecov
124
- vcr
125
- webmock
126
-
127
- BUNDLED WITH
128
- 2.0.2