relaton-iev 1.1.0 → 1.1.2

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: 0de88901d509f5420300ab1e23c96b5f573d444e516aae83c26d4495f12e5986
4
- data.tar.gz: 82bd64527c49ca8a93e62542b3135db2f6f0abe17527517ffe1e7b0cebfcb173
3
+ metadata.gz: 171452dde039161de3d84192e3618fe2d7df53772c9250fe40a00e11d10263fe
4
+ data.tar.gz: 4d927ecb1b1afcf5302685c1119c2b1807e489a9955b893ff983ac0ca5db24be
5
5
  SHA512:
6
- metadata.gz: b962c9dcd052b7131a494ecc29b2943401e52057193ec07c5d6aee2a99570725265b17afc75654a4c390ac6db94de7b4e140ac64b586bd79b4bd85e3479c647c
7
- data.tar.gz: 42808e1692e8cc54928d932988a9b85dad3ac10eab458016453b8d50bf0fee33d69813d86e3a9eb9f2adc7eda6b9cdb2917e446488d122c90996c3cdbd3b6f46
6
+ metadata.gz: 9b8474c5c852ead8e7979c0a5f8d46d6cf0270e1f96e422141e1cd655fc0a0def44f1ba67a306cf66f7030da2e49e54dbd6bb15215f186093ff44d0fcffdb9e0
7
+ data.tar.gz: 570ad6aeb737744761fe7e68b8b300d48fea9f176bbf4d3397ce530e73e2b4f74219f9911691307d3357619b97bce57cc66957f5d9ca274fd333d3d4be882cee
@@ -0,0 +1,46 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: rake
4
+
5
+ on:
6
+ push:
7
+ branches: [ master, main ]
8
+ tags: [ v* ]
9
+ pull_request:
10
+
11
+ jobs:
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', '2.4' ]
20
+ os: [ ubuntu-latest, windows-latest, macos-latest ]
21
+ experimental: [ false ]
22
+ include:
23
+ - ruby: '3.0'
24
+ os: 'ubuntu-latest'
25
+ experimental: true
26
+ - ruby: '3.0'
27
+ os: 'windows-latest'
28
+ experimental: true
29
+ - ruby: '3.0'
30
+ os: 'macos-latest'
31
+ experimental: true
32
+ steps:
33
+ - uses: actions/checkout@v2
34
+ with:
35
+ submodules: true
36
+
37
+ # https://github.com/ruby-debug/debase/issues/89#issuecomment-686827382
38
+ - if: matrix.os == 'macos-latest' && matrix.ruby == '2.5'
39
+ run: echo BUNDLE_BUILD__DEBASE="--with-cflags=\"-Wno-error=implicit-function-declaration\"" >> $GITHUB_ENV
40
+
41
+ - uses: ruby/setup-ruby@v1
42
+ with:
43
+ ruby-version: ${{ matrix.ruby }}
44
+ bundler-cache: true
45
+
46
+ - run: bundle exec rake
data/.gitignore CHANGED
@@ -11,3 +11,4 @@
11
11
  # rspec failure tracking
12
12
  .rspec_status
13
13
  .rubocop-https---raw-githubusercontent-com-riboseinc-oss-guides-master-ci-rubocop-yml
14
+ Gemfile.lock
data/.rubocop.yml CHANGED
@@ -1,10 +1,12 @@
1
1
  # This project follows the Ribose OSS style guide.
2
2
  # https://github.com/riboseinc/oss-guides
3
3
  # All project-specific additions and overrides should be specified in this file.
4
-
5
4
  inherit_from:
6
5
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
6
+
7
+ # local repo-specific modifications
8
+
7
9
  AllCops:
8
- TargetRubyVersion: 2.3
9
- Rails:
10
- Enabled: true
10
+ DisplayCopNames: false
11
+ StyleGuideCopsOnly: false
12
+ TargetRubyVersion: 2.4
data/Rakefile CHANGED
@@ -3,4 +3,4 @@ require "rspec/core/rake_task"
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
data/bin/rspec CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
-
2
+
3
3
  # This file was generated by Bundler.
4
4
  #
5
5
  # The application 'rspec' is installed as part of a gem, and
@@ -15,4 +15,3 @@ require "rubygems"
15
15
  require "bundler/setup"
16
16
 
17
17
  load Gem.bin_path("rspec-core", "rspec")
18
-
data/lib/relaton_iev.rb CHANGED
@@ -5,67 +5,68 @@ module RelatonIev
5
5
  class Error < StandardError; end
6
6
 
7
7
  class << self
8
- # converts generic IEV citation to citation of IEC 60050-n
9
- # assumes IEV citations are of form
10
- # <eref type="inline" bibitemid="a" citeas="IEC 60050">
11
- # <locality type="clause"><referenceFrom>101-01-01</referenceFrom></locality></eref>
12
- #
13
- # @param xmldoc [Nokogiri::XML::Documet]
14
- # @return [Set<String>]
15
- def linksIev2iec60050part(xmldoc)
16
- parts = Set.new
17
- xmldoc.xpath("//eref[@citeas = 'IEC 60050:2011'] | "\
18
- "//origin[@citeas = 'IEC 60050:2011']").each do |x|
19
- cl = x&.at(".//locality[@type = 'clause']/referenceFrom")&.text || next
20
- m = /^(\d+)/.match cl || next
21
- parts << m[0]
22
- x["citeas"] = x["citeas"].sub(/60050/, "60050-#{m[0]}")
23
- x["bibitemid"] = "IEC60050-#{m[0]}"
24
- end
25
- parts
8
+ # converts generic IEV citation to citation of IEC 60050-n
9
+ # assumes IEV citations are of form
10
+ # <eref type="inline" bibitemid="a" citeas="IEC 60050">
11
+ # <locality type="clause"><referenceFrom>101-01-01</referenceFrom></locality></eref>
12
+ #
13
+ # @param xmldoc [Nokogiri::XML::Documet]
14
+ # @return [Set<String>]
15
+ def linksIev2iec60050part(xmldoc)
16
+ parts = Set.new
17
+ xmldoc.xpath("//eref[@citeas = 'IEC 60050:2011'] | "\
18
+ "//origin[@citeas = 'IEC 60050:2011']").each do |x|
19
+ cl = x&.at(".//locality[@type = 'clause']/referenceFrom")&.text || next
20
+ m = /^(\d+)/.match cl || next
21
+ parts << m[0]
22
+ x["citeas"] = x["citeas"].sub(/60050/, "60050-#{m[0]}")
23
+ x["bibitemid"] = "IEC60050-#{m[0]}"
26
24
  end
25
+ parts
26
+ end
27
27
 
28
- # replace generic IEV reference with references to all extracted
29
- # IEV parts
30
- #
31
- # @param xmodoc [Nokogiri::XML::Document]
32
- # @param parts [Set<String>]
33
- # @param iev [Nokogiri::XML::Element]
34
- # @param bibdb [Relaton::Db, NilClass]
35
- # @return [Nokogiri::XML::Element]
36
- def refsIev2iec60050part(xmldoc, parts, iev, bibdb = nil)
37
- new_iev = ""
38
- parts.sort.each do |p|
39
- hit = bibdb&.fetch("IEC 60050-#{p}", nil, keep_year: true) || next
40
- date = hit.date[0].on(:year)
41
- new_iev += refsIev2iec60050part1(xmldoc, p, hit)
42
- xmldoc.xpath("//*[@citeas = 'IEC 60050-#{p}:2011']").each do |x|
43
- x["citeas"] = x["citeas"].sub(/:2011$/, ":#{date}")
44
- end
28
+ # replace generic IEV reference with references to all extracted
29
+ # IEV parts
30
+ #
31
+ # @param xmodoc [Nokogiri::XML::Document]
32
+ # @param parts [Set<String>]
33
+ # @param iev [Nokogiri::XML::Element]
34
+ # @param bibdb [Relaton::Db, NilClass]
35
+ # @return [Nokogiri::XML::Element]
36
+ def refsIev2iec60050part(xmldoc, parts, iev, bibdb = nil)
37
+ new_iev = ""
38
+ parts.sort.each do |p|
39
+ hit = bibdb&.fetch("IEC 60050-#{p}", nil, keep_year: true) || next
40
+ date = hit.date[0].on(:year)
41
+ new_iev += refsIev2iec60050part1(xmldoc, p, hit)
42
+ xmldoc.xpath("//*[@citeas = 'IEC 60050-#{p}:2011']").each do |x|
43
+ x["citeas"] = x["citeas"].sub(/:2011$/, ":#{date}")
45
44
  end
46
- iev.replace(new_iev)
47
45
  end
46
+ iev.replace(new_iev)
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
49
+ def refsIev2iec60050part1(xmldoc, part, hit)
50
+ date = hit.date[0].on(:year)
51
+ return "" if already_contains_ref(xmldoc, part, date)
55
52
 
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
53
+ id = xmldoc.at("//bibitem[@id = 'IEC60050-#{part}']") ? "-1" : ""
54
+ hit.to_xml.sub(/ id="[^"]+"/, %{ id="IEC60050-#{part}#{id}"})
55
+ end
61
56
 
62
- # @param xmldoc [Nokogiri::XML::Document]
63
- # @param bibdb [Relaton::Db, NilClass]
64
- # @return [Nokogiri::XML::Element]
65
- def iev_cleanup(xmldoc, bibdb = nil)
66
- iev = xmldoc.at("//bibitem[docidentifier = 'IEC 60050:2011']") || return
67
- parts = linksIev2iec60050part(xmldoc)
68
- refsIev2iec60050part(xmldoc, parts, iev, bibdb)
69
- end
57
+ def already_contains_ref(xmldoc, part, date)
58
+ xmldoc.at("//bibliography//bibitem[not(ancestor::bibitem)]/"\
59
+ "docidentifier[@type = 'IEC']"\
60
+ "[text() = 'IEC 60050-#{part}:#{date}']")
61
+ end
62
+
63
+ # @param xmldoc [Nokogiri::XML::Document]
64
+ # @param bibdb [Relaton::Db, NilClass]
65
+ # @return [Nokogiri::XML::Element]
66
+ def iev_cleanup(xmldoc, bibdb = nil)
67
+ iev = xmldoc.at("//bibitem[docidentifier = 'IEC 60050:2011']") || return
68
+ parts = linksIev2iec60050part(xmldoc)
69
+ refsIev2iec60050part(xmldoc, parts, iev, bibdb)
70
+ end
70
71
  end
71
72
  end
@@ -1,3 +1,3 @@
1
1
  module RelatonIev
2
- VERSION = "1.1.0".freeze
2
+ VERSION = "1.1.2".freeze
3
3
  end
data/relaton_iev.gemspec CHANGED
@@ -14,22 +14,24 @@ Gem::Specification.new do |spec|
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
17
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ `git ls-files -z`.split("\x0")
18
+ .reject { |f| f.match(%r{^(test|spec|features)/}) }
18
19
  end
19
20
  spec.bindir = "exe"
20
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
21
22
  spec.require_paths = ["lib"]
22
23
  spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
23
24
 
24
- spec.add_development_dependency "debase"
25
+ # spec.add_development_dependency "debase"
25
26
  spec.add_development_dependency "pry-byebug"
26
27
  spec.add_development_dependency "rake", "~> 10.0"
27
28
  spec.add_development_dependency "rspec", "~> 3.0"
28
- spec.add_development_dependency "ruby-debug-ide"
29
+ # spec.add_development_dependency "ruby-debug-ide"
30
+ spec.add_development_dependency "equivalent-xml", "~> 0.6"
29
31
  spec.add_development_dependency "simplecov"
30
32
  spec.add_development_dependency "vcr"
31
33
  spec.add_development_dependency "webmock"
32
- spec.add_development_dependency "equivalent-xml", "~> 0.6"
33
34
 
35
+ spec.add_dependency "nokogiri", "~> 1.11.0"
34
36
  spec.add_dependency "relaton", ">= 1.6"
35
37
  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: 1.1.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-14 00:00:00.000000000 Z
11
+ date: 2021-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: debase
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: pry-byebug
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -67,19 +53,19 @@ dependencies:
67
53
  - !ruby/object:Gem::Version
68
54
  version: '3.0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: ruby-debug-ide
56
+ name: equivalent-xml
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - ">="
59
+ - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '0'
61
+ version: '0.6'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ">="
66
+ - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: '0.6'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: simplecov
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -123,19 +109,19 @@ dependencies:
123
109
  - !ruby/object:Gem::Version
124
110
  version: '0'
125
111
  - !ruby/object:Gem::Dependency
126
- name: equivalent-xml
112
+ name: nokogiri
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
115
  - - "~>"
130
116
  - !ruby/object:Gem::Version
131
- version: '0.6'
132
- type: :development
117
+ version: 1.11.0
118
+ type: :runtime
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
122
  - - "~>"
137
123
  - !ruby/object:Gem::Version
138
- version: '0.6'
124
+ version: 1.11.0
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: relaton
141
127
  requirement: !ruby/object:Gem::Requirement
@@ -157,9 +143,7 @@ executables: []
157
143
  extensions: []
158
144
  extra_rdoc_files: []
159
145
  files:
160
- - ".github/workflows/macos.yml"
161
- - ".github/workflows/ubuntu.yml"
162
- - ".github/workflows/windows.yml"
146
+ - ".github/workflows/rake.yml"
163
147
  - ".gitignore"
164
148
  - ".rspec"
165
149
  - ".rubocop.yml"
@@ -192,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
176
  - !ruby/object:Gem::Version
193
177
  version: '0'
194
178
  requirements: []
195
- rubygems_version: 3.0.3
179
+ rubygems_version: 3.1.4
196
180
  signing_key:
197
181
  specification_version: 4
198
182
  summary: 'RelatonIev: manipulates IEV references to IEC 60050.'
@@ -1,31 +0,0 @@
1
- # Auto-generated by Cimas: Do not edit it manually!
2
- # See https://github.com/metanorma/cimas
3
- name: macos
4
-
5
- on:
6
- push:
7
- branches: [ master ]
8
- pull_request:
9
-
10
- jobs:
11
- test-macos:
12
- name: Test on Ruby ${{ matrix.ruby }} macOS
13
- runs-on: macos-latest
14
- strategy:
15
- fail-fast: false
16
- matrix:
17
- ruby: [ '2.6', '2.5', '2.4' ]
18
- steps:
19
- - uses: actions/checkout@master
20
- - name: Use Ruby
21
- uses: actions/setup-ruby@v1
22
- with:
23
- ruby-version: ${{ matrix.ruby }}
24
- architecture: 'x64'
25
- - name: Update gems
26
- run: |
27
- sudo gem install bundler --force
28
- bundle install --jobs 4 --retry 3
29
- - name: Run specs
30
- run: |
31
- bundle exec rake
@@ -1,43 +0,0 @@
1
- # Auto-generated by Cimas: Do not edit it manually!
2
- # See https://github.com/metanorma/cimas
3
- name: ubuntu
4
-
5
- on:
6
- push:
7
- branches: [ master ]
8
- pull_request:
9
-
10
- jobs:
11
- test-linux:
12
- name: Test on Ruby ${{ matrix.ruby }} Ubuntu
13
- runs-on: ubuntu-latest
14
- strategy:
15
- fail-fast: false
16
- matrix:
17
- ruby: [ '2.6', '2.5', '2.4' ]
18
- steps:
19
- - uses: actions/checkout@master
20
- - name: Use Ruby
21
- uses: actions/setup-ruby@v1
22
- with:
23
- ruby-version: ${{ matrix.ruby }}
24
- architecture: 'x64'
25
- - name: Update gems
26
- run: |
27
- gem install bundler
28
- bundle install --jobs 4 --retry 3
29
- - name: Run specs
30
- run: |
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,33 +0,0 @@
1
- # Auto-generated by Cimas: Do not edit it manually!
2
- # See https://github.com/metanorma/cimas
3
- name: windows
4
-
5
- on:
6
- push:
7
- branches: [ master ]
8
- pull_request:
9
-
10
- jobs:
11
- test-windows:
12
- name: Test on Ruby ${{ matrix.ruby }} Windows
13
- runs-on: windows-latest
14
- strategy:
15
- fail-fast: false
16
- matrix:
17
- ruby: [ '2.6', '2.5', '2.4' ]
18
- steps:
19
- - uses: actions/checkout@master
20
- - name: Use Ruby
21
- uses: actions/setup-ruby@v1
22
- with:
23
- ruby-version: ${{ matrix.ruby }}
24
- architecture: 'x64'
25
- - name: Update gems
26
- shell: pwsh
27
- run: |
28
- gem install bundler
29
- bundle config --local path vendor/bundle
30
- bundle install --jobs 4 --retry 3
31
- - name: Run specs
32
- run: |
33
- bundle exec rake