relaton-ccsds 1.19.0 → 1.20.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/relaton_ccsds/data_fetcher.rb +27 -11
- data/lib/relaton_ccsds/data_parser.rb +5 -1
- data/lib/relaton_ccsds/hit_collection.rb +9 -3
- data/lib/relaton_ccsds/version.rb +1 -1
- data/lib/relaton_ccsds.rb +1 -0
- data/relaton_ccsds.gemspec +2 -2
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5dbc82b9af321507bb207dc43ecb39b7ab7704f167f479fd3a6170cd3f5283e1
|
4
|
+
data.tar.gz: 22633dcbb3b00c5082f5e1db82a7c693ba915ffafa16abead42d62d7b3209252
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1267cd4023932a5702bcbd5c6efbaca487d74b26659de634da34f6620d42805f70d8ef6e12e484a00dff6ffeb23bb5c46c0e5f53d2d7a5df231c77f341bbe287
|
7
|
+
data.tar.gz: 13d9d28ba550bf1a4da1bd62a35f0db7a3eb70d690edab271fae33bc68610995e23833ef41a7a8f2dcdf7a76c7d1eb1fb93dcbf8c4bd43b617c53ab8e7ec6836
|
@@ -39,7 +39,11 @@ module RelatonCcsds
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def index
|
42
|
-
@index ||= Relaton::Index.find_or_create "CCSDS", file: "index-
|
42
|
+
@index ||= Relaton::Index.find_or_create "CCSDS", file: "index-v2.yaml", pubid_class: Pubid::Ccsds::Identifier
|
43
|
+
end
|
44
|
+
|
45
|
+
def old_index
|
46
|
+
@old_index ||= Relaton::Index.find_or_create "CCSDS", file: "index-v1.yaml"
|
43
47
|
end
|
44
48
|
|
45
49
|
#
|
@@ -64,6 +68,7 @@ module RelatonCcsds
|
|
64
68
|
fetch_docs ACTIVE_PUBS_URL
|
65
69
|
fetch_docs OBSOLETE_PUBS_URL, retired: true
|
66
70
|
index.save
|
71
|
+
old_index.save
|
67
72
|
end
|
68
73
|
|
69
74
|
#
|
@@ -100,6 +105,10 @@ module RelatonCcsds
|
|
100
105
|
save_bib bibitem
|
101
106
|
end
|
102
107
|
|
108
|
+
def get_output_file(id)
|
109
|
+
File.join @output, "#{id.gsub(/[.\s-]+/, '-')}.#{@ext}"
|
110
|
+
end
|
111
|
+
|
103
112
|
#
|
104
113
|
# Save bibitem to file
|
105
114
|
#
|
@@ -109,15 +118,11 @@ module RelatonCcsds
|
|
109
118
|
#
|
110
119
|
def save_bib(bib)
|
111
120
|
search_instance_translation bib
|
112
|
-
|
113
|
-
|
114
|
-
if @files.include?(file)
|
115
|
-
Util.info "(#{file}) file already exists. Trying to merge links ..."
|
116
|
-
merge_links bib, file
|
117
|
-
else @files << file
|
118
|
-
end
|
121
|
+
file = get_output_file(bib.docidentifier.first.id)
|
122
|
+
merge_links bib, file
|
119
123
|
File.write file, content(bib), encoding: "UTF-8"
|
120
|
-
index.add_or_update id, file
|
124
|
+
index.add_or_update Pubid::Ccsds::Identifier.parse(bib.docidentifier.first.id), file
|
125
|
+
old_index.add_or_update bib.docidentifier.first.id, file
|
121
126
|
end
|
122
127
|
|
123
128
|
#
|
@@ -146,7 +151,8 @@ module RelatonCcsds
|
|
146
151
|
#
|
147
152
|
def search_relations(bibid, bib)
|
148
153
|
index.search do |row|
|
149
|
-
id = row[:id].
|
154
|
+
id = row[:id].exclude(:language)
|
155
|
+
# TODO: smiplify this line?
|
150
156
|
next if id != bibid || row[:id] == bib.docidentifier.first.id
|
151
157
|
|
152
158
|
create_relations bib, row[:file]
|
@@ -154,8 +160,10 @@ module RelatonCcsds
|
|
154
160
|
end
|
155
161
|
|
156
162
|
def search_translations(bibid, bib)
|
163
|
+
# will call create_instance_relation if
|
164
|
+
# there are same identifiers in index but with word "Translated"
|
157
165
|
index.search do |row|
|
158
|
-
next unless row[:id].
|
166
|
+
next unless row[:id].language && row[:id].exclude(:language) == bibid
|
159
167
|
|
160
168
|
create_instance_relation bib, row[:file]
|
161
169
|
end
|
@@ -232,6 +240,14 @@ module RelatonCcsds
|
|
232
240
|
# @return [void]
|
233
241
|
#
|
234
242
|
def merge_links(bib, file) # rubocop:disable Metrics/AbcSize
|
243
|
+
# skip merging when new file
|
244
|
+
unless @files.include?(file)
|
245
|
+
@files << file
|
246
|
+
return
|
247
|
+
end
|
248
|
+
|
249
|
+
puts "(#{file}) file already exists. Trying to merge links ..."
|
250
|
+
|
235
251
|
hash = YAML.load_file file
|
236
252
|
bib2 = BibliographicItem.from_hash hash
|
237
253
|
if bib.link[0].type == bib2.link[0].type
|
@@ -38,7 +38,10 @@ module RelatonCcsds
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def parse_docid
|
41
|
-
[RelatonBib::DocumentIdentifier.new(
|
41
|
+
[RelatonBib::DocumentIdentifier.new(
|
42
|
+
id: docidentifier,
|
43
|
+
type: "CCSDS", primary: true
|
44
|
+
)]
|
42
45
|
end
|
43
46
|
|
44
47
|
def docidentifier(id = nil)
|
@@ -104,6 +107,7 @@ module RelatonCcsds
|
|
104
107
|
[create_relation("hasSuccessor", @successor.docidentifier[0].id)]
|
105
108
|
end
|
106
109
|
|
110
|
+
# TODO: cover this
|
107
111
|
def relation_type(rel_id)
|
108
112
|
return if rel_id == docidentifier ||
|
109
113
|
rel_id.match(DataFetcher::TRRGX).to_s != docidentifier.match(DataFetcher::TRRGX).to_s
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module RelatonCcsds
|
2
2
|
class HitCollection < RelatonBib::HitCollection
|
3
3
|
GHURL = "https://raw.githubusercontent.com/relaton/relaton-data-ccsds/main/".freeze
|
4
|
-
INDEX_FILE = "index-
|
4
|
+
INDEX_FILE = "index-v2.yaml".freeze
|
5
5
|
|
6
6
|
#
|
7
7
|
# Search his in index.
|
@@ -9,7 +9,13 @@ module RelatonCcsds
|
|
9
9
|
# @return [<Type>] <description>
|
10
10
|
#
|
11
11
|
def fetch
|
12
|
-
|
12
|
+
pubid = Pubid::Ccsds::Identifier.parse(text)
|
13
|
+
rows = if pubid.edition
|
14
|
+
index.search(pubid)
|
15
|
+
# index.search { |r| Pubid::Ccsds::Identifier.create(**r[:id]) == pubid }
|
16
|
+
else
|
17
|
+
index.search { |r| r[:id].exclude(:edition) == pubid }
|
18
|
+
end
|
13
19
|
@array = rows.map { |row| Hit.new code: row[:id], url: "#{GHURL}#{row[:file]}" }
|
14
20
|
self
|
15
21
|
rescue SocketError, OpenURI::HTTPError, OpenSSL::SSL::SSLError, Errno::ECONNRESET => e
|
@@ -17,7 +23,7 @@ module RelatonCcsds
|
|
17
23
|
end
|
18
24
|
|
19
25
|
def index
|
20
|
-
@index ||= Relaton::Index.find_or_create :ccsds, url: "#{GHURL}index-
|
26
|
+
@index ||= Relaton::Index.find_or_create :ccsds, url: "#{GHURL}index-v2.zip", file: INDEX_FILE
|
21
27
|
end
|
22
28
|
end
|
23
29
|
end
|
data/lib/relaton_ccsds.rb
CHANGED
data/relaton_ccsds.gemspec
CHANGED
@@ -26,8 +26,8 @@ Gem::Specification.new do |spec|
|
|
26
26
|
# Uncomment to register a new dependency of your gem
|
27
27
|
spec.add_dependency "mechanize", "~> 2.10"
|
28
28
|
spec.add_dependency "relaton-bib", "~> 1.19.0"
|
29
|
-
spec.add_dependency "relaton-index", "~> 0.2.
|
30
|
-
|
29
|
+
spec.add_dependency "relaton-index", "~> 0.2.13"
|
30
|
+
spec.add_dependency "pubid-ccsds", "~> 0.1.6"
|
31
31
|
# For more information and examples about making a new gem, check out our
|
32
32
|
# guide at: https://bundler.io/guides/creating_gem.html
|
33
33
|
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: 1.
|
4
|
+
version: 1.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mechanize
|
@@ -44,14 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.2.
|
47
|
+
version: 0.2.13
|
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: 0.2.
|
54
|
+
version: 0.2.13
|
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: 0.1.6
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.1.6
|
55
69
|
description: 'RelatonCcsds: retrive www.ccsds.org Standards'
|
56
70
|
email:
|
57
71
|
- open.source@ribose.com
|