relaton-ccsds 2.1.2 → 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: 1f65e83f34ed6f22f7e65ec824b20062aab694bc26be350daf9c20e7831a3304
4
- data.tar.gz: 64946aa8f2a3ce3ab88d8693bc09160932c7306a3e03f77d40479bbc372d0f1f
3
+ metadata.gz: f6dadc2f316707adc00f35ba37954880922144fdcfbc95db999598651b19575b
4
+ data.tar.gz: 3394b66fc3b8d02615f983e61dd63a0c0f5d88f4ef2bfed9ca146fdcd78e14c7
5
5
  SHA512:
6
- metadata.gz: c42c0fc09d2d3cd48ad60f97067d99ce94e50d109755d4f1701987c926daedbaa343731145922247bd56555669afdb2f9859ae0bf91a275e6c3825a5133f3243
7
- data.tar.gz: 1a44ed8409fecdd0d32e6b26626f0fc690d2f7c3bb0276e913f236227af7888afb1673fedbb7dea35637c63f883433387619f4925e8321c6d08f8ce90c5cf09b
6
+ metadata.gz: a8e288f96cdff7bf2855ac63de3cb370fc28dee4b8d9cc5bfae4a4e02a7118f083b04e9b12759fc281a216f36611281c0f4db5225b4a6f5ae4bd808b7437b565
7
+ data.tar.gz: 7e85367d93ed5b61ce96d5ed3adfaa83d6d0d88a8bd22864e49e4bc961d75403d47211b159c884521bdeae41e341fc02ae54bc3523490dba7aa04cca2b79f802
data/Gemfile CHANGED
@@ -5,6 +5,13 @@ source "https://rubygems.org"
5
5
  # Specify your gem's dependencies in relaton-ccsds.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 "rake", "~> 13.0"
@@ -1,7 +1,7 @@
1
1
  require "json"
2
2
  require "mechanize"
3
3
  require "relaton/index"
4
- require "pubid/ccsds"
4
+ require "pubid"
5
5
  require_relative "../../ccsds"
6
6
  require_relative "parser"
7
7
 
@@ -18,6 +18,11 @@ module Relaton
18
18
  @agent
19
19
  end
20
20
 
21
+ # Pubid index (index-v2): `:id` is the lean pubid hash. index-v1 (the
22
+ # pubid-v1 hash index for the released gem line) is rebuilt separately by
23
+ # the data repo's build_index_v1.rb, in its own process with a pubid-v1
24
+ # bundle, because pubid v1 and v2 both define Pubid::Ccsds::Identifier and
25
+ # cannot coexist here.
21
26
  def index
22
27
  @index ||= Relaton::Index.find_or_create(
23
28
  :ccsds, file: "#{INDEXFILE}.yaml", pubid_class: Pubid::Ccsds::Identifier
@@ -113,20 +118,24 @@ module Relaton
113
118
  # @return [void]
114
119
  #
115
120
  def search_relations(bibid, bib)
116
- index.search do |row|
121
+ bibid_pid = ::Pubid::Ccsds::Identifier.parse(bibid)
122
+ # search(bibid_pid) narrows candidates by number via binary search first.
123
+ index.search(bibid_pid) do |row|
117
124
  id = row[:id].exclude(:language)
118
125
  # TODO: smiplify this line?
119
- next if id != bibid || row[:id] == bib.docidentifier.first.content
126
+ next if id != bibid_pid || row[:id] == bib.docidentifier.first.content
120
127
 
121
128
  create_relations bib, row[:file]
122
129
  end
123
130
  end
124
131
 
125
132
  def search_translations(bibid, bib)
133
+ bibid_pid = ::Pubid::Ccsds::Identifier.parse(bibid)
126
134
  # will call create_instance_relation if
127
135
  # there are same identifiers in index but with word "Translated"
128
- index.search do |row|
129
- next unless row[:id].language && row[:id].exclude(:language) == bibid
136
+ # search(bibid_pid) narrows candidates by number via binary search first.
137
+ index.search(bibid_pid) do |row|
138
+ next unless row[:id].language && row[:id].exclude(:language) == bibid_pid
130
139
 
131
140
  create_instance_relation bib, row[:file]
132
141
  end
@@ -17,6 +17,8 @@ module Relaton
17
17
  raise Relaton::RequestError, e.message
18
18
  end
19
19
 
20
+ # Pubid index (index-v2): `:id` deserializes to a Pubid::Ccsds::Identifier
21
+ # via pubid_class, so search narrows by number with binary search.
20
22
  def index
21
23
  @index ||= Relaton::Index.find_or_create(
22
24
  :ccsds, url: "#{GHURL}#{INDEXFILE}.zip", file: "#{INDEXFILE}.yaml", pubid_class: Pubid::Ccsds::Identifier
@@ -30,9 +32,9 @@ module Relaton
30
32
  def rows
31
33
  if pubid.edition
32
34
  index.search(pubid)
33
- # index.search { |r| Pubid::Ccsds::Identifier.create(**r[:id]) == pubid }
34
35
  else
35
- index.search { |r| r[:id].exclude(:edition) == pubid }
36
+ # search(pubid) narrows candidates by number via binary search first.
37
+ index.search(pubid) { |r| r[:id].exclude(:edition) == pubid }
36
38
  end
37
39
  end
38
40
  end
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Ccsds
3
- VERSION = "2.1.2".freeze
3
+ VERSION = "2.2.0.pre.alpha.1".freeze
4
4
  end
5
5
  end
data/lib/relaton/ccsds.rb CHANGED
@@ -4,7 +4,7 @@
4
4
  # require "relaton/core"
5
5
  # require "relaton/bib"
6
6
  require "relaton/index"
7
- require "pubid/ccsds"
7
+ require "pubid"
8
8
  require_relative "ccsds/version"
9
9
  # require_relative "ccsds/processor"
10
10
  require_relative "ccsds/util"
@@ -15,7 +15,10 @@ require_relative "ccsds/bibliography"
15
15
 
16
16
  module Relaton
17
17
  module Ccsds
18
- INDEXFILE = "index-v1"
18
+ # The pubid-v2 (lean hash) index this gem produces and consumes. The legacy
19
+ # index-v1 (pubid-v1 hash, for the released gem line) is rebuilt separately
20
+ # by the data repo's build_index_v1.rb.
21
+ INDEXFILE = "index-v2"
19
22
 
20
23
  class Error < StandardError; end
21
24
  # Your code goes here...
@@ -21,15 +21,15 @@ 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
  # Uncomment to register a new dependency of your gem
27
27
  spec.add_dependency "csv", "~> 3.3"
28
28
  spec.add_dependency "mechanize", "~> 2.10"
29
- spec.add_dependency "pubid-ccsds", "~> 1.15.2"
30
- spec.add_dependency "relaton-bib", "~> 2.1.0"
31
- spec.add_dependency "relaton-core", "~> 0.0.9"
32
- spec.add_dependency "relaton-index", "~> 0.2.16"
29
+ spec.add_dependency "pubid", "~> 2.0.0.pre.alpha.3"
30
+ spec.add_dependency "relaton-bib", "~> 2.2.0.pre.alpha.1"
31
+ spec.add_dependency "relaton-core", "~> 2.2.0.pre.alpha.1"
32
+ spec.add_dependency "relaton-index", "~> 2.2.0.pre.alpha.1"
33
33
  # For more information and examples about making a new gem, check out our
34
34
  # guide at: https://bundler.io/guides/creating_gem.html
35
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-ccsds
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2
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-06-17 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: csv
@@ -39,61 +39,61 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.10'
41
41
  - !ruby/object:Gem::Dependency
42
- name: pubid-ccsds
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.2
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.2
54
+ version: 2.0.0.pre.alpha.3
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: relaton-bib
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 2.1.0
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: 2.1.0
68
+ version: 2.2.0.pre.alpha.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: relaton-core
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.0.9
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.0.9
82
+ version: 2.2.0.pre.alpha.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: relaton-index
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 0.2.16
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: 0.2.16
96
+ version: 2.2.0.pre.alpha.1
97
97
  description: 'Relaton::Ccsds: retrive www.ccsds.org Standards'
98
98
  email:
99
99
  - open.source@ribose.com
@@ -105,7 +105,6 @@ files:
105
105
  - ".github/workflows/release.yml"
106
106
  - ".gitignore"
107
107
  - ".rspec"
108
- - ".rubocop.yml"
109
108
  - CLAUDE.md
110
109
  - Gemfile
111
110
  - README.adoc
@@ -143,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
142
  requirements:
144
143
  - - ">="
145
144
  - !ruby/object:Gem::Version
146
- version: 3.2.0
145
+ version: 3.3.0
147
146
  required_rubygems_version: !ruby/object:Gem::Requirement
148
147
  requirements:
149
148
  - - ">="
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