relaton-ccsds 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: b8b0045d6e630a2ef1fad333aa3b30c8c449de5a1b93a10c556fec356f790b4e
4
- data.tar.gz: cc649f73ecc1d2a528e144a231dbf19fe7d6718fe4370adad47e54f054eac742
3
+ metadata.gz: f6dadc2f316707adc00f35ba37954880922144fdcfbc95db999598651b19575b
4
+ data.tar.gz: 3394b66fc3b8d02615f983e61dd63a0c0f5d88f4ef2bfed9ca146fdcd78e14c7
5
5
  SHA512:
6
- metadata.gz: 42a3288c6cf4097d19a190a8552001754bc8384b026e77b0f3da8c60c7045ef4b8d1227ff9726e34f6b0c03dac2c79fc34cf16ff6368e765992666cb9c50f8f6
7
- data.tar.gz: d375f30c7f6116fc74f2db735a87eb3aae27a7ddca1dea24fae4d9e31b35ecf50249ef3d1b76deb39718a6f9963afe31ed7fa467adf8551c0c85a5eb9d44383c
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.1".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,16 +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 "openssl", "~> 3.3.2"
30
- spec.add_dependency "pubid-ccsds", "~> 1.15.2"
31
- spec.add_dependency "relaton-bib", "~> 2.1.0"
32
- spec.add_dependency "relaton-core", "~> 0.0.9"
33
- 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"
34
33
  # For more information and examples about making a new gem, check out our
35
34
  # guide at: https://bundler.io/guides/creating_gem.html
36
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.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-12 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,75 +39,61 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.10'
41
41
  - !ruby/object:Gem::Dependency
42
- name: openssl
42
+ name: pubid
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.3.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: 3.3.2
55
- - !ruby/object:Gem::Dependency
56
- name: pubid-ccsds
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 1.15.2
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 1.15.2
54
+ version: 2.0.0.pre.alpha.3
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: relaton-bib
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: 2.1.0
61
+ version: 2.2.0.pre.alpha.1
76
62
  type: :runtime
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: 2.1.0
68
+ version: 2.2.0.pre.alpha.1
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: relaton-core
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 0.0.9
75
+ version: 2.2.0.pre.alpha.1
90
76
  type: :runtime
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: 0.0.9
82
+ version: 2.2.0.pre.alpha.1
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: relaton-index
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: 0.2.16
89
+ version: 2.2.0.pre.alpha.1
104
90
  type: :runtime
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: 0.2.16
96
+ version: 2.2.0.pre.alpha.1
111
97
  description: 'Relaton::Ccsds: retrive www.ccsds.org Standards'
112
98
  email:
113
99
  - open.source@ribose.com
@@ -119,7 +105,6 @@ files:
119
105
  - ".github/workflows/release.yml"
120
106
  - ".gitignore"
121
107
  - ".rspec"
122
- - ".rubocop.yml"
123
108
  - CLAUDE.md
124
109
  - Gemfile
125
110
  - README.adoc
@@ -128,12 +113,6 @@ files:
128
113
  - bin/rspec
129
114
  - bin/setup
130
115
  - ccsdsallpubs.html
131
- - grammars/basicdoc.rng
132
- - grammars/biblio-compile.rng
133
- - grammars/biblio-standoc.rng
134
- - grammars/biblio.rng
135
- - grammars/relaton-ccsds-compile.rng
136
- - grammars/relaton-ccsds.rng
137
116
  - lib/relaton/ccsds.rb
138
117
  - lib/relaton/ccsds/bibliography.rb
139
118
  - lib/relaton/ccsds/data/fetcher.rb
@@ -163,7 +142,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
142
  requirements:
164
143
  - - ">="
165
144
  - !ruby/object:Gem::Version
166
- version: 3.2.0
145
+ version: 3.3.0
167
146
  required_rubygems_version: !ruby/object:Gem::Requirement
168
147
  requirements:
169
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