relaton-iec 2.1.1 → 2.2.0.pre.alpha.1

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: b7ec248ce4ccbda30b47e48cc530425476eb5b0b5d3e908614717d2c0f6cbb1b
4
- data.tar.gz: 85f6a7b53e79549f1b5e4aba8521db64fd415336a6ef95c344244bdb4b1015af
3
+ metadata.gz: dcfb7bd2592c2c1245175ddd175426e8f559fe055e6d116bf896009baec5da94
4
+ data.tar.gz: 0eef5839d2cbb8fcc085048393a9e0900954fd7c7860770c16497829b6740655
5
5
  SHA512:
6
- metadata.gz: c2453f2e4e3b1f912f738bf2abb32efc34eb261f9c9507215fe47822c6948d5cc3486cc721f9b2fb09164b497c61fd73aefd1344bc2334d08b4ec02efc89252f
7
- data.tar.gz: 478e1f5a249c5811957bdd6f5af09cd13f94ba4482e9549ce5a83f0c247d9a9f891a305a845377a3dc6112d3a8e2a1ed5226617c66a45722e73c6c5b29c8e8c9
6
+ metadata.gz: eed54a4f4c67ddc98eb5d6d9d0548b48ff626e6a9168c639ddbffc9bb80393bbc6f8d3eaa46f9894cff31606f5ea4179a80bc0b77f3a6bccc85b3b9c27f63ae9
7
+ data.tar.gz: eef855a8bb64881e2e425822584bb84b6511cb48977890cdb6ed396a7692d24318fd7e3a3ad064c43353b7c2b78e71b2771cef6340c05db6c9931050506c87e4
data/CLAUDE.md CHANGED
@@ -9,5 +9,5 @@
9
9
  ## Testing
10
10
 
11
11
  - **Framework:** RSpec with VCR cassettes and WebMock
12
- - **Index fixture:** `spec/fixtures/index-v1.zip` is pre-loaded into `Relaton::Index` pool in `before(:suite)` (configured in `spec/support/webmock.rb`). Run `rake spec:update_index` to refresh from relaton-data-iec.
12
+ - **Index fixture:** `spec/fixtures/index-v2.zip` is pre-loaded into `Relaton::Index` pool in `before(:suite)` (configured in `spec/support/webmock.rb`). Run `rake spec:update_index` to refresh from relaton-data-iec. The fixture is the lean pubid-v2 `to_hash` index (`_type`-tagged rows); rows are deserialized via `Pubid::Iec::Identifier.from_hash` and validated by round-trip in relaton-index (no `id_keys` allowlist).
13
13
  - **VCR cassettes:** `spec/vcr_cassettes/` — index download requests are ignored by VCR (handled by fixture).
data/Gemfile CHANGED
@@ -5,6 +5,13 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
5
5
  # Specify your gem's dependencies in relaton_iec.gemspec
6
6
  gemspec
7
7
 
8
+ # Use local monorepo sibling gems where available.
9
+ Dir["../*/"].each do |dir|
10
+ name = File.basename(dir)
11
+ next if name == File.basename(__dir__)
12
+ next unless File.exist?(File.join(dir, "#{name}.gemspec"))
13
+ gem name, path: dir
14
+ end
8
15
 
9
16
  gem "equivalent-xml", "~> 0.6"
10
17
  gem "pry-byebug"
data/README.adoc CHANGED
@@ -286,7 +286,7 @@ Relaton::Iec uses the relaton-logger gem for logging. By default, it logs to STD
286
286
 
287
287
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
288
288
 
289
- To update the index test fixture (used by tests), run `rake spec:update_index`. This downloads the latest `index-v1.zip` from the https://github.com/relaton/relaton-data-iec[relaton-data-iec] repository.
289
+ To update the index test fixture (used by tests), run `rake spec:update_index`. This downloads the latest `index-v2.zip` from the https://github.com/relaton/relaton-data-iec[relaton-data-iec] repository.
290
290
 
291
291
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
292
292
 
data/Rakefile CHANGED
@@ -11,8 +11,8 @@ namespace :spec do
11
11
  require "net/http"
12
12
  require "uri"
13
13
 
14
- url = "https://raw.githubusercontent.com/relaton/relaton-data-iec/v2/index-v1.zip"
15
- dest = File.join(__dir__, "spec", "fixtures", "index-v1.zip")
14
+ url = "https://raw.githubusercontent.com/relaton/relaton-data-iec/v2/index-v2.zip"
15
+ dest = File.join(__dir__, "spec", "fixtures", "index-v2.zip")
16
16
 
17
17
  puts "Downloading \#{url} ..."
18
18
  uri = URI.parse(url)
@@ -35,12 +35,14 @@ module Relaton
35
35
  return iev if ref.casecmp("IEV").zero?
36
36
 
37
37
  pubid = ::Pubid::Iec::Identifier.parse ref.upcase
38
- pubid.year = year.to_i if year
38
+ if year
39
+ pubid.date = ::Pubid::Components::Date.new(year: year.to_s)
40
+ end
39
41
 
40
42
  ret = iecbib_get(pubid, opts)
41
43
  return nil if ret.nil?
42
44
 
43
- ret = ret.to_most_recent_reference unless pubid.year || opts[:keep_year] ||
45
+ ret = ret.to_most_recent_reference unless pubid.date&.year || opts[:keep_year] ||
44
46
  opts[:publication_date_before] || opts[:publication_date_after]
45
47
  ret
46
48
  end
@@ -90,11 +92,13 @@ module Relaton
90
92
  # @return [Relaton::Iec::ItemData, nil]
91
93
  def iecbib_get(pubid, opts) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
92
94
  Util.info "Fetching from Relaton repository ...", key: pubid.to_s
93
- exclude = opts[:all_parts] ? %i[year part] : %i[year]
95
+ # pubid 2.x splits multi-level numbers ("61326-2-6") into part +
96
+ # subpart, so all-parts matching must ignore subpart too.
97
+ exclude = opts[:all_parts] ? %i[year part subpart] : %i[year]
94
98
  result = search(pubid, exclude: exclude) || return
95
99
 
96
100
  if opts[:all_parts]
97
- ret = result.to_all_parts(pubid.year&.to_s, opts)
101
+ ret = result.to_all_parts(pubid.date&.year&.to_s, opts)
98
102
  Util.info "Found: `#{ret&.docidentifier&.first&.content}`", key: pubid.to_s if ret
99
103
  return ret
100
104
  end
@@ -112,19 +116,20 @@ module Relaton
112
116
  # @param opts [Hash]
113
117
  # @return [Relaton::Iec::ItemData, nil]
114
118
  def find_match(result, pubid, opts = {}) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
115
- if pubid.year
116
- hit = result.detect { |h| h.hit[:id].year == pubid.year }
119
+ pubid_year = pubid.date&.year
120
+ if pubid_year
121
+ hit = result.detect { |h| h.hit[:id].date&.year == pubid_year }
117
122
  return fetch_and_check_date(hit, pubid, opts) if hit
118
123
  elsif opts[:publication_date_before] || opts[:publication_date_after]
119
- candidates = result.select { |h| year_in_range?(h.hit[:id].year.to_i, opts) }
120
- candidates = candidates.sort_by { |h| -h.hit[:id].year.to_i }
124
+ candidates = result.select { |h| year_in_range?(h.hit[:id].date&.year.to_i, opts) }
125
+ candidates = candidates.sort_by { |h| -h.hit[:id].date&.year.to_i }
121
126
  candidates.each do |h|
122
127
  ret = fetch_and_check_date(h, pubid, opts)
123
128
  return ret if ret
124
129
  end
125
130
  return nil
126
131
  else
127
- hit = result.max_by { |h| h.hit[:id].year.to_i }
132
+ hit = result.max_by { |h| h.hit[:id].date&.year.to_i }
128
133
  return unless hit
129
134
 
130
135
  ret = hit.item
@@ -243,9 +248,9 @@ module Relaton
243
248
  Util.info "Not found.", key: pubid.to_s
244
249
 
245
250
  # Year mismatch: hits exist but not for the requested year
246
- if pubid.year && result.any?
247
- years = result.map { |h| h.hit[:id].year&.to_s }.compact.uniq.sort
248
- Util.info "TIP: No match for edition year `#{pubid.year}`, " \
251
+ if pubid.date&.year && result.any?
252
+ years = result.map { |h| h.hit[:id].date&.year&.to_s }.compact.uniq.sort
253
+ Util.info "TIP: No match for edition year `#{pubid.date&.year}`, " \
249
254
  "but matches exist for `#{years.join('`, `')}`.", key: pubid.to_s
250
255
  return
251
256
  end
@@ -28,10 +28,6 @@ module Relaton
28
28
  index.save
29
29
  save_last_change
30
30
  report_errors
31
- rescue StandardError => e
32
- Util.error do
33
- "#{e.message}\n#{e.backtrace.join("\n")}"
34
- end
35
31
  end
36
32
 
37
33
  private
@@ -198,7 +194,8 @@ module Relaton
198
194
  pubid = parse_pubid(did.to_s)
199
195
  index.add_or_update pubid, file if pubid
200
196
  end
201
- @last_change_max = pub["lastChangeTimestamp"] if last_change_max < pub["lastChangeTimestamp"]
197
+ ts = pub["lastChangeTimestamp"]
198
+ @last_change_max = ts if ts && last_change_max < ts
202
199
  File.write file, serialize(bib), encoding: "UTF-8"
203
200
  end
204
201
 
@@ -17,16 +17,17 @@ module Relaton
17
17
 
18
18
  # @return [Relaton::Iec::ItemData, nil]
19
19
  def to_all_parts(r_year, opts = {}) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength,Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
20
- parts = @array.select { |h| h.part && (!r_year || h.hit[:id]&.year&.to_s == r_year) }
20
+ parts = @array.select { |h| h.part && (!r_year || h.hit[:id]&.date&.year&.to_s == r_year) }
21
21
  if opts[:publication_date_before] || opts[:publication_date_after]
22
- parts = parts.select { |h| Bibliography.send(:year_in_range?, h.hit[:id].year.to_i, opts) }
22
+ parts = parts.select { |h| Bibliography.send(:year_in_range?, h.hit[:id].date&.year.to_i, opts) }
23
23
  end
24
24
  hit = parts.min_by { |h| h.part.to_i }
25
25
  return @array.first&.item unless hit
26
26
 
27
27
  bibitem = hit.item
28
28
  all_parts_item = bibitem.to_all_parts
29
- parts.reject { |h| h.hit[:id] == hit.hit[:id] }.each do |hi|
29
+ others = parts.reject { |h| h.hit[:id] == hit.hit[:id] }
30
+ others.sort_by { |h| part_sort_key(h.hit[:id]) }.each do |hi|
30
31
  code = hi.hit[:id].to_s
31
32
  bib = ItemData.new(
32
33
  formattedref: Bib::Formattedref.new(content: code),
@@ -39,16 +40,18 @@ module Relaton
39
40
 
40
41
  private
41
42
 
42
- VALID_ID_KEYS = %i[
43
- publisher number year type vap amendments corrigendums copublisher part base fragment edition database sheet
44
- ]
43
+ # Ascending sort key for part ordering, e.g. 61326-2-1 < 61326-2-6.
44
+ # part/subpart are pubid Code components; coerce via to_s, missing 0.
45
+ def part_sort_key(pubid)
46
+ sub = pubid.respond_to?(:subpart) ? pubid.subpart : nil
47
+ [pubid.part.to_s.to_i, sub.to_s.to_i]
48
+ end
45
49
 
46
50
  def index
47
51
  @index ||= Relaton::Index.find_or_create(
48
52
  :IEC,
49
53
  url: "#{Hit::GHURL}#{INDEXFILE}.zip",
50
54
  file: "#{INDEXFILE}.yaml",
51
- id_keys: VALID_ID_KEYS,
52
55
  pubid_class: ::Pubid::Iec::Identifier
53
56
  )
54
57
  end
@@ -62,21 +65,60 @@ module Relaton
62
65
  part.to_s.split("-").map(&:to_i)
63
66
  end
64
67
 
65
- # Compare pubids for matching, excluding specified fields
68
+ # Keys pubid re-emits at a default value after `from_hash` but omits on a
69
+ # fresh `parse` (a lutaml render_default asymmetry: a deserialized
70
+ # attribute loses its using_default flag, so render_default: false no
71
+ # longer suppresses it). Equality must ignore them so a deserialized index
72
+ # row compares equal to the freshly-parsed query. Values are the
73
+ # stringified defaults (see #stringify).
74
+ LEAKING_DEFAULTS = { "publisher" => "IEC", "all_parts" => "false", "database" => "false" }.freeze
75
+
76
+ # Map a flat exclude symbol to the lean to_hash key it removes (at every
77
+ # nesting level). :type removes the polymorphic `_type` discriminator.
78
+ EXCLUDE_KEYS = { year: "year", part: "part", subpart: "subpart", type: "_type" }.freeze
79
+
80
+ # Compare pubids for matching, excluding specified fields.
66
81
  # @param row_pubid [Pubid::Iec::Identifier] pubid from index row
67
82
  # @return [Boolean]
68
83
  def pubid_matches?(row_pubid, exclude)
69
84
  return false unless row_pubid
70
85
 
71
- if exclude.include?(:type)
72
- # Can't use exclude(:type) on pubid (subclass re-adds it),
73
- # so compare using to_h(add_type: false) hashes
74
- exclude_keys = exclude - [:type]
75
- ref_hash = @ref.to_h(add_type: false).reject { |k, _| exclude_keys.include?(k) }
76
- row_hash = row_pubid.to_h(add_type: false).reject { |k, _| exclude_keys.include?(k) }
77
- ref_hash == row_hash
78
- else
79
- @ref.exclude(*exclude) == row_pubid.exclude(*exclude)
86
+ canonical_id(@ref, exclude) == canonical_id(row_pubid, exclude)
87
+ end
88
+
89
+ # Build-path-independent comparison key: the lean `to_hash` with keys and
90
+ # scalars stringified, leaking defaults dropped, and excluded fields
91
+ # removed at every nesting level. More robust than comparing attribute
92
+ # objects, whose derived `type`/`stage` differ between a parsed identifier
93
+ # (component object) and a deserialized one (nil/symbol) — at the top level
94
+ # and inside `base_identifier`.
95
+ def canonical_id(pubid, exclude)
96
+ drop = exclude.filter_map { |e| EXCLUDE_KEYS[e] }
97
+ prune(stringify(pubid.to_hash), drop)
98
+ end
99
+
100
+ # Stringify hash keys and scalar values so comparison ignores YAML scalar
101
+ # typing (1 vs "1") and string/symbol key differences.
102
+ def stringify(value)
103
+ case value
104
+ when Hash then value.to_h { |k, v| [k.to_s, stringify(v)] }
105
+ when Array then value.map { |v| stringify(v) }
106
+ when nil then nil
107
+ else value.to_s
108
+ end
109
+ end
110
+
111
+ # Recursively drop nil values, leaking defaults, and excluded keys.
112
+ def prune(value, drop)
113
+ case value
114
+ when Hash
115
+ value.each_with_object({}) do |(k, v), h|
116
+ next if v.nil? || drop.include?(k) || LEAKING_DEFAULTS[k] == v
117
+
118
+ h[k] = prune(v, drop)
119
+ end
120
+ when Array then value.map { |v| prune(v, drop) }
121
+ else value
80
122
  end
81
123
  end
82
124
 
@@ -86,7 +128,7 @@ module Relaton
86
128
  index.search(@ref) do |row|
87
129
  pubid_matches?(row[:id], exclude)
88
130
  end.sort_by do |row|
89
- [row[:id].year.to_i, *part_sort_key(row[:id].part)]
131
+ [row[:id].date&.year.to_i, *part_sort_key(row[:id].part)]
90
132
  end.map do |row|
91
133
  Hit.new(row, self)
92
134
  end
@@ -20,7 +20,7 @@ module Relaton
20
20
 
21
21
  parsed =
22
22
  case value
23
- when ::Pubid::Iec::Base then value
23
+ when ::Pubid::Iec::Identifier then value
24
24
  when String
25
25
  begin
26
26
  ::Pubid::Iec::Identifier.parse(value)
@@ -69,14 +69,16 @@ module Relaton
69
69
  end
70
70
 
71
71
  def remove_date!
72
- remove_attr!(:year)
72
+ remove_attr!(:date)
73
73
  end
74
74
 
75
75
  private
76
76
 
77
77
  def render_pubid(pubid)
78
78
  case type
79
- when "URN" then pubid.urn
79
+ # pubid owns the legacy positional IEC URN format (and the all-parts
80
+ # ":::ser" series form); render through it.
81
+ when "URN" then pubid.to_urn.to_s
80
82
  else pubid.to_s
81
83
  end
82
84
  end
@@ -84,15 +86,43 @@ module Relaton
84
86
  def remove_attr!(attr)
85
87
  return unless @pubid
86
88
 
87
- @pubid.send("#{attr}=", nil)
88
- base = @pubid.base
89
- while base
90
- base.send("#{attr}=", nil)
91
- base = base.base
89
+ # For supplements (Amendment/Corrigendum, which carry their own
90
+ # date/version as an addition to the base), preserve the
91
+ # supplement's own attrs and only clear the base chain — e.g.
92
+ # "IEC 60027-1:1992/AMD1:1997" should drop the base year but keep
93
+ # the amendment year. For wrappers (VapIdentifier, ConsolidatedIdentifier),
94
+ # clear the outer attr too — they re-state the base year and need it
95
+ # gone everywhere.
96
+ unless @pubid.is_a?(::Pubid::Iec::SupplementIdentifier)
97
+ clear_attr_on(@pubid, attr)
98
+ end
99
+
100
+ node = @pubid.base_identifier
101
+ while node
102
+ clear_attr_on(node, attr)
103
+ # ConsolidatedIdentifier carries a sibling collection of bundled
104
+ # identifiers; clear the attr on each non-supplement entry too.
105
+ if node.respond_to?(:identifiers) && node.identifiers
106
+ node.identifiers.each do |id|
107
+ next if id.is_a?(::Pubid::Iec::SupplementIdentifier)
108
+
109
+ clear_attr_on(id, attr)
110
+ end
111
+ end
112
+ node = node.base_identifier
92
113
  end
93
114
  refresh_content!
94
115
  end
95
116
 
117
+ # Clear one attribute on a single pubid; for :part also clear the
118
+ # paired :subpart (pubid 2.x splits "16-1-1" into part="1" + subpart="1").
119
+ def clear_attr_on(pubid, attr)
120
+ pubid.send("#{attr}=", nil) if pubid.respond_to?("#{attr}=")
121
+ return unless attr == :part && pubid.respond_to?(:subpart=)
122
+
123
+ pubid.subpart = nil
124
+ end
125
+
96
126
  def refresh_content!
97
127
  send(:original_content=, to_s)
98
128
  end
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Iec
3
- VERSION = "2.1.1".freeze
3
+ VERSION = "2.2.0.pre.alpha.1".freeze
4
4
  end
5
5
  end
data/lib/relaton/iec.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "digest/md5"
2
2
  require "net/http"
3
3
  require "nokogiri"
4
- require "pubid/iec"
4
+ require "pubid"
5
5
  require "zip"
6
6
  require "relaton/index"
7
7
  require "relaton/iso"
@@ -20,7 +20,7 @@ require_relative "iec/model/bibdata"
20
20
 
21
21
  module Relaton
22
22
  module Iec
23
- INDEXFILE = "index-v1".freeze
23
+ INDEXFILE = "index-v2".freeze
24
24
 
25
25
  class << self
26
26
  # Returns hash of XML reammar
data/relaton-iec.gemspec CHANGED
@@ -21,13 +21,13 @@ Gem::Specification.new do |spec|
21
21
  spec.bindir = "exe"
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
- spec.required_ruby_version = Gem::Requirement.new(">= 3.2.0")
24
+ spec.required_ruby_version = Gem::Requirement.new(">= 3.3.0")
25
25
 
26
26
  spec.add_dependency "addressable"
27
27
  spec.add_dependency "base64"
28
- spec.add_dependency "pubid-iec", "~> 1.15.11"
29
- spec.add_dependency "relaton-core", "~> 0.0.13"
30
- spec.add_dependency "relaton-index", "~> 0.2.20"
31
- spec.add_dependency "relaton-iso", "~> 2.1.0"
28
+ spec.add_dependency "pubid", "~> 2.0.0.pre.alpha.3"
29
+ spec.add_dependency "relaton-core", "~> 2.2.0.pre.alpha.1"
30
+ spec.add_dependency "relaton-index", "~> 2.2.0.pre.alpha.1"
31
+ spec.add_dependency "relaton-iso", "~> 2.2.0.pre.alpha.1"
32
32
  spec.add_dependency "rubyzip"
33
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.2.0.pre.alpha.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-05-06 00:00:00.000000000 Z
11
+ date: 2026-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -39,61 +39,61 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: pubid-iec
42
+ name: pubid
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.15.11
47
+ version: 2.0.0.pre.alpha.3
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.15.11
54
+ version: 2.0.0.pre.alpha.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: relaton-core
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.0.13
61
+ version: 2.2.0.pre.alpha.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.0.13
68
+ version: 2.2.0.pre.alpha.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: relaton-index
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.2.20
75
+ version: 2.2.0.pre.alpha.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.2.20
82
+ version: 2.2.0.pre.alpha.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: relaton-iso
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.1.0
89
+ version: 2.2.0.pre.alpha.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.1.0
96
+ version: 2.2.0.pre.alpha.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubyzip
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -120,7 +120,6 @@ files:
120
120
  - ".github/workflows/release.yml"
121
121
  - ".gitignore"
122
122
  - ".rspec"
123
- - ".rubocop.yml"
124
123
  - CLAUDE.md
125
124
  - Gemfile
126
125
  - LICENSE.txt
@@ -129,11 +128,6 @@ files:
129
128
  - bin/console
130
129
  - bin/rspec
131
130
  - bin/setup
132
- - grammars/basicdoc.rng
133
- - grammars/biblio-standoc.rng
134
- - grammars/biblio.rng
135
- - grammars/relaton-iec-compile.rng
136
- - grammars/relaton-iec.rng
137
131
  - lib/relaton/iec.rb
138
132
  - lib/relaton/iec/bibliography.rb
139
133
  - lib/relaton/iec/data_fetcher.rb
@@ -167,7 +161,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
167
161
  requirements:
168
162
  - - ">="
169
163
  - !ruby/object:Gem::Version
170
- version: 3.2.0
164
+ version: 3.3.0
171
165
  required_rubygems_version: !ruby/object:Gem::Requirement
172
166
  requirements:
173
167
  - - ">="
data/.rubocop.yml DELETED
@@ -1,12 +0,0 @@
1
- # This project follows the Ribose OSS style guide.
2
- # https://github.com/riboseinc/oss-guides
3
- # All project-specific additions and overrides should be specified in this file.
4
-
5
- require: rubocop-rails
6
-
7
- inherit_from:
8
- - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
9
- AllCops:
10
- TargetRubyVersion: 3.2
11
- Rails:
12
- Enabled: false