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 +4 -4
- data/Gemfile +7 -0
- data/lib/relaton/ccsds/data/fetcher.rb +14 -5
- data/lib/relaton/ccsds/hit_collection.rb +4 -2
- data/lib/relaton/ccsds/version.rb +1 -1
- data/lib/relaton/ccsds.rb +5 -2
- data/relaton-ccsds.gemspec +5 -5
- metadata +12 -13
- data/.rubocop.yml +0 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f6dadc2f316707adc00f35ba37954880922144fdcfbc95db999598651b19575b
|
|
4
|
+
data.tar.gz: 3394b66fc3b8d02615f983e61dd63a0c0f5d88f4ef2bfed9ca146fdcd78e14c7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
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
|
-
|
|
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 !=
|
|
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
|
-
|
|
129
|
-
|
|
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
|
-
|
|
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
|
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
|
|
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
|
-
|
|
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...
|
data/relaton-ccsds.gemspec
CHANGED
|
@@ -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.
|
|
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
|
|
30
|
-
spec.add_dependency "relaton-bib", "~> 2.
|
|
31
|
-
spec.add_dependency "relaton-core", "~>
|
|
32
|
-
spec.add_dependency "relaton-index", "~>
|
|
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
|
|
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-
|
|
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
|
|
42
|
+
name: pubid
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
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:
|
|
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.
|
|
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.
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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
|