relaton-iev 0.1.5 → 1.1.3

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: 1c323e66c2707261a232a125f2a62254dd2744306d9b1673b1584d6144e37c35
4
- data.tar.gz: 6082e8314ca24ece45d2c353fc7db211b239ca86ff9ece005876197e19f498e5
3
+ metadata.gz: 3918718353f35253438dab58b258c15d1cc91169370cab27b81dc8ff03d07cad
4
+ data.tar.gz: b82d15e9a3bc1dc10e03cd6c9d4c16632f666fe91770fc23f54d7ce25c7df78f
5
5
  SHA512:
6
- metadata.gz: 219c6ad2e229dd9b72d597c777ac5a7cbec5fcf452b6627d00056d9f95be4ff07579b5602eb99482a1bb1e2abfddfbae311ed17ce89de6a8d8e350f966358352
7
- data.tar.gz: a77b9316059c8caec8a8c66b0ec7b3a555709249e31d598b11203757c40967a32d38ea3fb14325bd50c05b127032697a38923efc7a4251e30c7a6ae3a5f514e1
6
+ metadata.gz: 524597c4b1b0293b302e2c9575f80f593e930ccca13d5b1af07b0b8ac7965c908c19025812ff0b16db28514af9b1006720154db6cc6d7a7029b22c5b84336847
7
+ data.tar.gz: 143558a313ad249766a8e7ccb6395555cfda59320106fde08c707c2e518e21bed5461886d82db05ab1ca8facda39676d191aeaff5ac0933811ca7fac1de89ca2
@@ -0,0 +1,36 @@
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', '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
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.5
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
-
@@ -1,3 +1,3 @@
1
1
  module RelatonIev
2
- VERSION = "0.1.5".freeze
2
+ VERSION = "1.1.3".freeze
3
3
  end
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>
12
+ # </locality></eref>
13
+ #
14
+ # @param xmldoc [Nokogiri::XML::Documet]
15
+ # @return [Set<String>]
16
+ def links_iev2iec60050part(xmldoc)
17
+ parts = Set.new
18
+ xmldoc.xpath("//*[@citeas = 'IEC 60050:2011']").each do |x|
19
+ m = x&.at(".//locality[@type = 'clause']/referenceFrom")&.text
20
+ &.sub(/^(\d+).*$/, "\\1") or next
21
+
22
+ parts << m
23
+ x["citeas"] = x["citeas"].sub(/60050/, "60050-#{m}")
24
+ x["bibitemid"] = "IEC60050-#{m}"
26
25
  end
26
+ parts
27
+ end
27
28
 
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
29
+ # replace generic IEV reference with references to all extracted
30
+ # IEV parts
31
+ #
32
+ # @param xmodoc [Nokogiri::XML::Document]
33
+ # @param parts [Set<String>]
34
+ # @param iev [Nokogiri::XML::Element]
35
+ # @param bibdb [Relaton::Db, NilClass]
36
+ # @return [Nokogiri::XML::Element]
37
+ def refs_iev2iec60050part(xmldoc, parts, bibdb = nil)
38
+ new_iev = ""
39
+ parts.sort.each do |p|
40
+ 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)}")
45
44
  end
46
- iev.replace(new_iev)
47
45
  end
46
+ 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 refs_iev2iec60050part1(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 = links_iev2iec60050part(xmldoc)
69
+ iev.replace(refs_iev2iec60050part(xmldoc, parts, bibdb))
70
+ end
70
71
  end
71
72
  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
- spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
23
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.5.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
 
34
- spec.add_dependency "relaton", "~> 0.7"
35
+ spec.add_dependency "nokogiri", "~> 1.12.0"
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: 0.1.5
4
+ version: 1.1.3
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: 2020-04-09 00:00:00.000000000 Z
11
+ date: 2021-09-23 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,33 +109,33 @@ 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.12.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.12.0
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: relaton
141
127
  requirement: !ruby/object:Gem::Requirement
142
128
  requirements:
143
- - - "~>"
129
+ - - ">="
144
130
  - !ruby/object:Gem::Version
145
- version: '0.7'
131
+ version: '1.6'
146
132
  type: :runtime
147
133
  prerelease: false
148
134
  version_requirements: !ruby/object:Gem::Requirement
149
135
  requirements:
150
- - - "~>"
136
+ - - ">="
151
137
  - !ruby/object:Gem::Version
152
- version: '0.7'
138
+ version: '1.6'
153
139
  description: 'RelatonIev: manipulates IEV references to IEC 60050.'
154
140
  email:
155
141
  - open.source@ribose.com
@@ -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"
@@ -177,7 +161,7 @@ homepage: https://github.com/metanorma/relaton-iev
177
161
  licenses:
178
162
  - MIT
179
163
  metadata: {}
180
- post_install_message:
164
+ post_install_message:
181
165
  rdoc_options: []
182
166
  require_paths:
183
167
  - lib
@@ -185,16 +169,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
185
169
  requirements:
186
170
  - - ">="
187
171
  - !ruby/object:Gem::Version
188
- version: 2.4.0
172
+ version: 2.5.0
189
173
  required_rubygems_version: !ruby/object:Gem::Requirement
190
174
  requirements:
191
175
  - - ">="
192
176
  - !ruby/object:Gem::Version
193
177
  version: '0'
194
178
  requirements: []
195
- rubyforge_project:
196
- rubygems_version: 2.7.6
197
- signing_key:
179
+ rubygems_version: 3.1.4
180
+ signing_key:
198
181
  specification_version: 4
199
182
  summary: 'RelatonIev: manipulates IEV references to IEC 60050.'
200
183
  test_files: []
@@ -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
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