relaton 1.9.5 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/docs/README.adoc +1 -0
  4. data/lib/relaton/db.rb +2 -1
  5. data/lib/relaton/registry.rb +1 -1
  6. data/lib/relaton/version.rb +1 -1
  7. data/lib/relaton/workers_pool.rb +3 -3
  8. data/relaton.gemspec +20 -19
  9. data/spec/relaton/db_spec.rb +10 -0
  10. data/spec/relaton/registry_spec.rb +4 -0
  11. data/spec/relaton_spec.rb +13 -6
  12. data/spec/vcr_cassetes/3gpp_tr_00_01u_umts_3_0_0.yml +127 -0
  13. data/spec/vcr_cassetes/async_fetch.yml +1534 -1534
  14. data/spec/vcr_cassetes/bsi_bs_en_iso_8848.yml +13 -14
  15. data/spec/vcr_cassetes/cc_dir_10005_2019.yml +14 -14
  16. data/spec/vcr_cassetes/cen_en_10160_1999.yml +30 -30
  17. data/spec/vcr_cassetes/cie_001_1980.yml +25 -19
  18. data/spec/vcr_cassetes/ecma_6.yml +7 -7
  19. data/spec/vcr_cassetes/fisp_140.yml +6 -6
  20. data/spec/vcr_cassetes/gb_t_20223_2006.yml +24 -20
  21. data/spec/vcr_cassetes/iana_service_names_port_numbers.yml +23 -19
  22. data/spec/vcr_cassetes/iec_60050_102_2007.yml +28 -28
  23. data/spec/vcr_cassetes/iec_combined_included.yml +94 -92
  24. data/spec/vcr_cassetes/ieee_528_2019.yml +2581 -103
  25. data/spec/vcr_cassetes/iho_b_11.yml +7 -7
  26. data/spec/vcr_cassetes/iso_111111119115_1.yml +2 -2
  27. data/spec/vcr_cassetes/iso_19115_1.yml +15 -15
  28. data/spec/vcr_cassetes/iso_19115_1_2.yml +30 -30
  29. data/spec/vcr_cassetes/iso_19115_all_parts.yml +16 -16
  30. data/spec/vcr_cassetes/iso_19133_2005.yml +15 -15
  31. data/spec/vcr_cassetes/iso_combined_applied.yml +28 -28
  32. data/spec/vcr_cassetes/iso_combined_included.yml +30 -30
  33. data/spec/vcr_cassetes/iso_dis_14093.yml +198 -0
  34. data/spec/vcr_cassetes/itu_combined_included.yml +192 -193
  35. data/spec/vcr_cassetes/ogc_19_025r1.yml +10 -10
  36. data/spec/vcr_cassetes/omg_ami4ccm_1_0.yml +4 -4
  37. data/spec/vcr_cassetes/rfc_8341.yml +7 -7
  38. data/spec/vcr_cassetes/sp_800_38b.yml +6 -6
  39. data/spec/vcr_cassetes/threads_from_env.yml +448 -0
  40. data/spec/vcr_cassetes/un_rtade_cefact_2004_32.yml +30 -30
  41. data/spec/vcr_cassetes/w3c_json_ld11.yml +39 -28
  42. metadata +57 -41
  43. data/spec/vcr_cassetes/iso_cd_14093.yml +0 -202
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d130b4485dbbf753e79494a4d586acf8fd85df120d4e2f1f35aa5c7380e05811
4
- data.tar.gz: 1872fc4d88f29de709f81dfca39132d1c7fb244b9069661d8c7c4bca70a80977
3
+ metadata.gz: bb5d556ea27ab2cb41c462a7dfb830f8213d864ea36514e7f29e16ece78aae0a
4
+ data.tar.gz: eca59ebbcc1c8146390b4855b5c3db6f30fedb3d559fa8d311719384b7abb7a3
5
5
  SHA512:
6
- metadata.gz: 1209e92a74b33acc54fcc1f391ec4beb1833cb2886375188f16ff8feb6c7c12c6f2e56978b3a77b442599fafa5bfbc4b4edfec6305e422afdb97cbc3e07190a0
7
- data.tar.gz: f5a8c37e80afa5b80d7779735d54f685e9ba85a2bea6acd2ad3a4608b4e74d75c76248b6989af7df05df1f50f975b0ab85397355c90c2c2f50bc00159fc7d5fe
6
+ metadata.gz: aa88c787664a54a665f82642988ed4ed8dcc24ca03fa1d7d56da33dca2f9e654a498a3261dfa20f53a4521ebd8a8440e2406bb6146e332c6e158ee8ca83c1566
7
+ data.tar.gz: 9c3918ab27ea01547a91e467b72a4f5a8d8654b4cab9022dc8c80422d7369c0d73cf34454b89544ae84ad62fce700bc5a23af0c696a2f13cf6645fa070266475
data/.rubocop.yml CHANGED
@@ -2,6 +2,8 @@
2
2
  # https://github.com/riboseinc/oss-guides
3
3
  # All project-specific additions and overrides should be specified in this file.
4
4
 
5
+ require: rubocop-rails
6
+
5
7
  inherit_from:
6
8
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
7
9
  AllCops:
data/docs/README.adoc CHANGED
@@ -178,6 +178,7 @@ x = db.fetch_db("ISO 5749")
178
178
  => nil
179
179
 
180
180
  # Fetching asynchronously
181
+ # RELATON_FETCH_PARALLEL environment variable can be used to ovveride default number of parallel fetches
181
182
 
182
183
  # prepare queue for results
183
184
  results = Queue.new
data/lib/relaton/db.rb CHANGED
@@ -105,7 +105,8 @@ module Relaton
105
105
  if stdclass
106
106
  unless @queues[stdclass]
107
107
  processor = @registry.processors[stdclass]
108
- wp = WorkersPool.new(processor.threads) do |args|
108
+ threads = ENV["RELATON_FETCH_PARALLEL"]&.to_i || processor.threads
109
+ wp = WorkersPool.new(threads) do |args|
109
110
  args[3].call fetch(*args[0..2])
110
111
  rescue RelatonBib::RequestError => e
111
112
  args[3].call e
@@ -9,7 +9,7 @@ module Relaton
9
9
  relaton_gb relaton_iec relaton_ietf relaton_iso relaton_itu relaton_nist
10
10
  relaton_ogc relaton_calconnect relaton_omg relaton_un relaton_w3c
11
11
  relaton_ieee relaton_iho relaton_bipm relaton_ecma relaton_cie relaton_bsi
12
- relaton_cen relaton_iana
12
+ relaton_cen relaton_iana relaton_3gpp
13
13
  ].freeze
14
14
 
15
15
  include Singleton
@@ -1,3 +1,3 @@
1
1
  module Relaton
2
- VERSION = "1.9.5".freeze
2
+ VERSION = "1.10.0".freeze
3
3
  end
@@ -4,9 +4,9 @@ module Relaton
4
4
  # Workers poll.
5
5
  class WorkersPool
6
6
  def initialize(workers = 2, &_block)
7
- num_workers = workers < 2 ? 2 : workers
8
- @queue = SizedQueue.new(num_workers * 2)
9
- @threads = Array.new num_workers do
7
+ # num_workers = workers < 2 ? 2 : workers
8
+ @queue = SizedQueue.new(workers * 2)
9
+ @threads = Array.new workers do
10
10
  Thread.new do
11
11
  while item = @queue.pop; yield(item) end
12
12
  end
data/relaton.gemspec CHANGED
@@ -29,25 +29,26 @@ Gem::Specification.new do |spec|
29
29
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
30
30
  spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
31
31
 
32
- spec.add_dependency "relaton-bipm", "~> 1.9.0"
33
- spec.add_dependency "relaton-bsi", "~> 1.9.0"
34
- spec.add_dependency "relaton-calconnect", "~> 1.9.0"
35
- spec.add_dependency "relaton-cen", "~> 1.9.0"
36
- spec.add_dependency "relaton-cie", "~> 1.9.0"
37
- spec.add_dependency "relaton-ecma", "~> 1.9.0"
38
- spec.add_dependency "relaton-gb", "~> 1.9.0"
39
- spec.add_dependency "relaton-iana", "~> 1.9.0"
40
- spec.add_dependency "relaton-iec", "~> 1.9.0"
41
- spec.add_dependency "relaton-ieee", "~> 1.9.0"
42
- spec.add_dependency "relaton-ietf", "~> 1.9.0"
43
- spec.add_dependency "relaton-iho", "~> 1.9.0"
44
- spec.add_dependency "relaton-iso", "~> 1.9.0"
45
- spec.add_dependency "relaton-itu", "~> 1.9.0"
46
- spec.add_dependency "relaton-nist", ">= 1.9.2"
47
- spec.add_dependency "relaton-ogc", "~> 1.9.0"
48
- spec.add_dependency "relaton-omg", "~> 1.9.0"
49
- spec.add_dependency "relaton-un", "~> 1.9.0"
50
- spec.add_dependency "relaton-w3c", "~> 1.9.0"
32
+ spec.add_dependency "relaton-3gpp", "~> 1.10.0"
33
+ spec.add_dependency "relaton-bipm", "~> 1.10.0"
34
+ spec.add_dependency "relaton-bsi", "~> 1.10.0"
35
+ spec.add_dependency "relaton-calconnect", "~> 1.10.0"
36
+ spec.add_dependency "relaton-cen", "~> 1.10.0"
37
+ spec.add_dependency "relaton-cie", "~> 1.10.0"
38
+ spec.add_dependency "relaton-ecma", "~> 1.10.0"
39
+ spec.add_dependency "relaton-gb", "~> 1.10.0"
40
+ spec.add_dependency "relaton-iana", "~> 1.10.0"
41
+ spec.add_dependency "relaton-iec", "~> 1.10.0"
42
+ spec.add_dependency "relaton-ieee", "~> 1.10.0"
43
+ spec.add_dependency "relaton-ietf", "~> 1.10.0"
44
+ spec.add_dependency "relaton-iho", "~> 1.10.0"
45
+ spec.add_dependency "relaton-iso", "~> 1.10.0"
46
+ spec.add_dependency "relaton-itu", "~> 1.10.0"
47
+ spec.add_dependency "relaton-nist", ">= 1.10.0"
48
+ spec.add_dependency "relaton-ogc", "~> 1.10.0"
49
+ spec.add_dependency "relaton-omg", "~> 1.10.0"
50
+ spec.add_dependency "relaton-un", "~> 1.10.0"
51
+ spec.add_dependency "relaton-w3c", "~> 1.10.0"
51
52
 
52
53
  spec.add_development_dependency "byebug", "~> 11.0"
53
54
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
@@ -184,6 +184,16 @@ RSpec.describe Relaton::Db do
184
184
  end
185
185
  expect(result).to be_nil
186
186
  end
187
+
188
+ it "use threads number from RELATON_FETCH_PARALLEL" do
189
+ expect(ENV).to receive(:[]).with("RELATON_FETCH_PARALLEL").and_return(1)
190
+ allow(ENV).to receive(:[]).and_call_original
191
+ expect(Relaton::WorkersPool).to receive(:new).with(1).and_call_original
192
+ VCR.use_cassette "threads_from_env" do
193
+ db.fetch_async("ITU-T G.993.5") { |r| queue << r }
194
+ Timeout.timeout(50) { queue.pop }
195
+ end
196
+ end
187
197
  end
188
198
 
189
199
  context "fetch documents form static cache" do
@@ -91,6 +91,10 @@ RSpec.describe Relaton::Registry do
91
91
  it "IANA" do
92
92
  expect(Relaton::Registry.instance.by_type("IANA")).to be_instance_of RelatonIana::Processor
93
93
  end
94
+
95
+ it "3GPP" do
96
+ expect(Relaton::Registry.instance.by_type("3GPP")).to be_instance_of Relaton3gpp::Processor
97
+ end
94
98
  end
95
99
 
96
100
  it "find processot by dataset" do
data/spec/relaton_spec.rb CHANGED
@@ -59,10 +59,10 @@ RSpec.describe Relaton::Db do
59
59
  end
60
60
  end
61
61
 
62
- it "gets sn ISO/CD reference" do
63
- VCR.use_cassette "iso_cd_14093" do
64
- bib = @db.fetch "ISO/CD 14093"
65
- expect(bib.docidentifier[0].id).to eq "ISO/CD 14093"
62
+ it "gets sn ISO/DIS reference" do
63
+ VCR.use_cassette "iso_dis_14093" do
64
+ bib = @db.fetch "ISO/DIS 14093"
65
+ expect(bib.docidentifier[0].id).to eq "ISO/DIS 14093"
66
66
  end
67
67
  end
68
68
  end
@@ -196,10 +196,10 @@ RSpec.describe Relaton::Db do
196
196
  expect(File.exist?("testcache2")).to be true
197
197
  testcache = Relaton::DbCache.new "testcache"
198
198
  expect(testcache["IETF(RFC 8341)"]).to include "<docidentifier "\
199
- "type=\"IETF\">RFC 8341</docidentifier>"
199
+ "type=\"RFC\" scope=\"anchor\">RFC8341</docidentifier>"
200
200
  testcache = Relaton::DbCache.new "testcache2"
201
201
  expect(testcache["IETF(RFC 8341)"]).to include "<docidentifier "\
202
- "type=\"IETF\">RFC 8341</docidentifier>"
202
+ "type=\"RFC\" scope=\"anchor\">RFC8341</docidentifier>"
203
203
  end
204
204
  end
205
205
 
@@ -306,6 +306,13 @@ RSpec.describe Relaton::Db do
306
306
  end
307
307
  end
308
308
 
309
+ it "get 3GPP reference" do
310
+ VCR.use_cassette "3gpp_tr_00_01u_umts_3_0_0" do
311
+ bib = @db.fetch "3GPP TR 00.01U:UMTS/3.0.0"
312
+ expect(bib).to be_instance_of Relaton3gpp::BibliographicItem
313
+ end
314
+ end
315
+
309
316
  context "get combined documents" do
310
317
  context "ISO" do
311
318
  it "included" do
@@ -0,0 +1,127 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://raw.githubusercontent.com/relaton/relaton-data-3gpp/main/data/TR_00.01U_UMTS_3.0.0.yaml
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - raw.githubusercontent.com
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Connection:
24
+ - keep-alive
25
+ Content-Length:
26
+ - '562'
27
+ Cache-Control:
28
+ - max-age=300
29
+ Content-Security-Policy:
30
+ - default-src 'none'; style-src 'unsafe-inline'; sandbox
31
+ Content-Type:
32
+ - text/plain; charset=utf-8
33
+ Etag:
34
+ - W/"c7d5e5fe82f7acf338ee2018e084c4b51759b05adec00dac3a8ceff6ce47a97d"
35
+ Strict-Transport-Security:
36
+ - max-age=31536000
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ X-Frame-Options:
40
+ - deny
41
+ X-Xss-Protection:
42
+ - 1; mode=block
43
+ X-Github-Request-Id:
44
+ - 9280:7295:770162:8EDD19:61F6F080
45
+ Accept-Ranges:
46
+ - bytes
47
+ Date:
48
+ - Sun, 30 Jan 2022 20:09:36 GMT
49
+ Via:
50
+ - 1.1 varnish
51
+ X-Served-By:
52
+ - cache-sof1510048-SOF
53
+ X-Cache:
54
+ - MISS
55
+ X-Cache-Hits:
56
+ - '0'
57
+ X-Timer:
58
+ - S1643573376.020860,VS0,VE247
59
+ Vary:
60
+ - Authorization,Accept-Encoding,Origin
61
+ Access-Control-Allow-Origin:
62
+ - "*"
63
+ X-Fastly-Request-Id:
64
+ - 11243678148887ceff7f71189e363376c324a668
65
+ Expires:
66
+ - Sun, 30 Jan 2022 20:14:36 GMT
67
+ Source-Age:
68
+ - '0'
69
+ body:
70
+ encoding: ASCII-8BIT
71
+ string: |
72
+ ---
73
+ id: 3GPPTR00.01U-UMTS/3.0.0
74
+ title:
75
+ - type: main
76
+ content: Work programme for the standardization of Universal Mobile Telecommunications
77
+ System (UMTS)
78
+ format: text/plain
79
+ link:
80
+ - content: http://www.3gpp.org/ftp/Specs/archive/00_series/00.01U/0001U-300.zip
81
+ type: src
82
+ type: standard
83
+ docid:
84
+ - id: 3GPP TR 00.01U:UMTS/3.0.0
85
+ type: 3GPP
86
+ docnumber: TR 00.01U:UMTS/3.0.0
87
+ contributor:
88
+ - person:
89
+ name:
90
+ completename:
91
+ content: RAPELI, Juha
92
+ language:
93
+ - en
94
+ script:
95
+ - Latn
96
+ affiliation:
97
+ - organization:
98
+ name:
99
+ - PHILIPS CONSUMER COMMUNICATION
100
+ role:
101
+ - author
102
+ language:
103
+ - en
104
+ script:
105
+ - Latn
106
+ docstatus:
107
+ stage:
108
+ value: withdrawn
109
+ fetched: '2022-01-24'
110
+ doctype: TR
111
+ editorialgroup:
112
+ - name: SMG5
113
+ type: prime
114
+ radiotechnology: 3G
115
+ release:
116
+ version2g: '3'
117
+ version3g: '3'
118
+ defunct: true
119
+ freeze_meeting: SMG-28
120
+ freeze_stage1_meeting: SMG-28
121
+ freeze_stage2_meeting: SMG-28
122
+ freeze_stage3_meeting: SMG-28
123
+ close_meeting: SP-28
124
+ project_end: '1999-02-12'
125
+ http_version:
126
+ recorded_at: Sun, 30 Jan 2022 20:09:36 GMT
127
+ recorded_with: VCR 5.1.0