baza.rb 0.0.5 → 0.0.7

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: 9ffabe02ed963b25b7b763832d2b67fba6fd26739ab1656af0613007390b4804
4
- data.tar.gz: 58a9abffa52a09106537205d8a806e87084a3ceb0454ba509373bc3c9bab9a3b
3
+ metadata.gz: cec6d23dff978b5dcf080a6940a875ee1f9a67eb07b61ee5ee4b8a98348113c4
4
+ data.tar.gz: 98eb41907e61acc9beeb0397da3b1ec0c9cbb8a1ebd7c8f57422f8be18947cf4
5
5
  SHA512:
6
- metadata.gz: d274ead41371254054b7ddef2e4929e197550a4a4fbdc168c7cd4960317a7aa10bbda453430b5ab1c92f58523c9f3c6325517069217a2a5e1137330890a117de
7
- data.tar.gz: 1e7429b00c744708dddf0f930c37ee93f3a4675d8dfd9ef5e16db5630afb853a6eb9618d5132158812e5e5b104871fc761003b9bdaca07f799078fc4b33cb1d3
6
+ metadata.gz: 1df697ec1d35721c3d23e6ef0b05d0d1c7e99b47c959b8150e413b18f5fd131efb9d3ca28bbdff4343ab4f012ce86217f4b1ffc8508c92eec2842633b6bef354
7
+ data.tar.gz: 9f74b8782d6a5ad2bfa1f0d8450e1c033cf5c8ad22c2a083f20fb2d96f94a8abbdd572b612a9440edf74f1d40d3b09356c471e2befd85fdd8c020b69884f60f3
data/Gemfile CHANGED
@@ -24,12 +24,12 @@ source 'https://rubygems.org'
24
24
  gemspec
25
25
 
26
26
  gem 'factbase', '>0', require: false
27
- gem 'minitest', '5.24.1', require: false
27
+ gem 'minitest', '5.25.1', require: false
28
28
  gem 'minitest-reporters', '1.7.1', require: false
29
29
  gem 'net-ping', '2.0.8', require: false
30
30
  gem 'rake', '13.2.1', require: false
31
31
  gem 'random-port', '>0', require: false
32
- gem 'rspec-rails', '6.1.3', require: false
32
+ gem 'rspec-rails', '6.1.4', require: false
33
33
  gem 'rubocop', '1.65.1', require: false
34
34
  gem 'rubocop-performance', '1.21.1', require: false
35
35
  gem 'rubocop-rspec', '3.0.4', require: false
data/Gemfile.lock CHANGED
@@ -104,7 +104,7 @@ GEM
104
104
  crass (~> 1.0.2)
105
105
  nokogiri (>= 1.12.0)
106
106
  loog (0.6.0)
107
- minitest (5.24.1)
107
+ minitest (5.25.1)
108
108
  minitest-reporters (1.7.1)
109
109
  ansi
110
110
  builder
@@ -173,7 +173,7 @@ GEM
173
173
  rspec-mocks (3.13.1)
174
174
  diff-lcs (>= 1.2.0, < 2.0)
175
175
  rspec-support (~> 3.13.0)
176
- rspec-rails (6.1.3)
176
+ rspec-rails (6.1.4)
177
177
  actionpack (>= 6.1)
178
178
  activesupport (>= 6.1)
179
179
  railties (>= 6.1)
@@ -242,12 +242,12 @@ PLATFORMS
242
242
  DEPENDENCIES
243
243
  baza.rb!
244
244
  factbase (> 0)
245
- minitest (= 5.24.1)
245
+ minitest (= 5.25.1)
246
246
  minitest-reporters (= 1.7.1)
247
247
  net-ping (= 2.0.8)
248
248
  rake (= 13.2.1)
249
249
  random-port (> 0)
250
- rspec-rails (= 6.1.3)
250
+ rspec-rails (= 6.1.4)
251
251
  rubocop (= 1.65.1)
252
252
  rubocop-performance (= 1.21.1)
253
253
  rubocop-rspec (= 3.0.4)
@@ -26,5 +26,5 @@
26
26
  # Copyright:: Copyright (c) 2024 Yegor Bugayenko
27
27
  # License:: MIT
28
28
  class BazaRb
29
- VERSION = '0.0.5'
29
+ VERSION = '0.0.7'
30
30
  end
data/lib/baza-rb.rb CHANGED
@@ -55,6 +55,10 @@ class BazaRb
55
55
  # @param [Array<String>] meta List of metas, possibly empty
56
56
  # @return [Integer] Job ID on the server
57
57
  def push(name, data, meta)
58
+ raise 'The "name" of the job is nil' if name.nil?
59
+ raise 'The "name" of the job may not be empty' if name.empty?
60
+ raise 'The "data" of the job is nil' if data.nil?
61
+ raise 'The "meta" of the job is nil' if meta.nil?
58
62
  id = 0
59
63
  hdrs = headers.merge(
60
64
  'Content-Type' => 'application/octet-stream',
@@ -89,6 +93,8 @@ class BazaRb
89
93
  # @param [Integer] id The ID of the job on the server
90
94
  # @return [Bytes] Binary data pulled
91
95
  def pull(id)
96
+ raise 'The ID of the job is nil' if id.nil?
97
+ raise 'The ID of the job must be a positive integer' unless id.positive?
92
98
  data = 0
93
99
  elapsed(@loog) do
94
100
  Tempfile.open do |file|
@@ -97,8 +103,9 @@ class BazaRb
97
103
  home.append('pull').append("#{id}.fb").to_s,
98
104
  method: :get,
99
105
  headers: headers.merge(
100
- 'Accept' => 'application/octet-stream'
106
+ 'Accept' => 'application/zip, application/factbase'
101
107
  ),
108
+ accept_encoding: 'gzip',
102
109
  connecttimeout: @timeout,
103
110
  timeout: @timeout
104
111
  )
@@ -121,6 +128,8 @@ class BazaRb
121
128
  # @param [Integer] id The ID of the job on the server
122
129
  # @return [Boolean] TRUE if the job is already finished
123
130
  def finished?(id)
131
+ raise 'The ID of the job is nil' if id.nil?
132
+ raise 'The ID of the job must be a positive integer' unless id.positive?
124
133
  finished = false
125
134
  elapsed(@loog) do
126
135
  ret =
@@ -142,6 +151,8 @@ class BazaRb
142
151
  # @param [Integer] id The ID of the job on the server
143
152
  # @return [String] The stdout, as a text
144
153
  def stdout(id)
154
+ raise 'The ID of the job is nil' if id.nil?
155
+ raise 'The ID of the job must be a positive integer' unless id.positive?
145
156
  stdout = ''
146
157
  elapsed(@loog) do
147
158
  ret =
@@ -163,6 +174,8 @@ class BazaRb
163
174
  # @param [Integer] id The ID of the job on the server
164
175
  # @return [Integer] The exit code
165
176
  def exit_code(id)
177
+ raise 'The ID of the job is nil' if id.nil?
178
+ raise 'The ID of the job must be a positive integer' unless id.positive?
166
179
  code = 0
167
180
  elapsed(@loog) do
168
181
  ret =
@@ -184,6 +197,8 @@ class BazaRb
184
197
  # @param [Integer] id The ID of the job on the server
185
198
  # @return [String] The verdict
186
199
  def verified(id)
200
+ raise 'The ID of the job is nil' if id.nil?
201
+ raise 'The ID of the job must be a positive integer' unless id.positive?
187
202
  verdict = 0
188
203
  elapsed(@loog) do
189
204
  ret =
@@ -205,6 +220,9 @@ class BazaRb
205
220
  # @param [String] name The name of the job on the server
206
221
  # @param [String] owner The owner of the lock (any string)
207
222
  def lock(name, owner)
223
+ raise 'The "name" of the job is nil' if name.nil?
224
+ raise 'The "name" of the job may not be empty' if name.empty?
225
+ raise 'The "owner" of the lock is nil' if owner.nil?
208
226
  elapsed(@loog) do
209
227
  with_retries(max_tries: @retries) do
210
228
  checked(
@@ -223,6 +241,9 @@ class BazaRb
223
241
  # @param [String] name The name of the job on the server
224
242
  # @param [String] owner The owner of the lock (any string)
225
243
  def unlock(name, owner)
244
+ raise 'The "name" of the job is nil' if name.nil?
245
+ raise 'The "name" of the job may not be empty' if name.empty?
246
+ raise 'The "owner" of the lock is nil' if owner.nil?
226
247
  elapsed(@loog) do
227
248
  with_retries(max_tries: @retries) do
228
249
  checked(
@@ -241,6 +262,8 @@ class BazaRb
241
262
  # @param [String] name The name of the job on the server
242
263
  # @return [Integer] The ID of the job on the server
243
264
  def recent(name)
265
+ raise 'The "name" of the job is nil' if name.nil?
266
+ raise 'The "name" of the job may not be empty' if name.empty?
244
267
  job = 0
245
268
  elapsed(@loog) do
246
269
  ret =
@@ -262,6 +285,8 @@ class BazaRb
262
285
  # @param [String] name The name of the job on the server
263
286
  # @return [Boolean] TRUE if such name exists
264
287
  def name_exists?(name)
288
+ raise 'The "name" of the job is nil' if name.nil?
289
+ raise 'The "name" of the job may not be empty' if name.empty?
265
290
  exists = 0
266
291
  elapsed(@loog) do
267
292
  ret =
@@ -283,7 +308,10 @@ class BazaRb
283
308
  # @param [String] jname The name of the job on the server
284
309
  # @param [String] file The file name
285
310
  def durable_place(jname, file)
286
- raise "File '#{file}' is absent" unless File.exist?(file)
311
+ raise 'The "jname" of the durable is nil' if jname.nil?
312
+ raise 'The "jname" of the durable may not be empty' if jname.empty?
313
+ raise 'The "file" of the durable is nil' if file.nil?
314
+ raise "The file '#{file}' is absent" unless File.exist?(file)
287
315
  id = nil
288
316
  elapsed(@loog) do
289
317
  ret =
@@ -313,7 +341,10 @@ class BazaRb
313
341
  # @param [Integer] id The ID of the durable
314
342
  # @param [String] file The file to upload
315
343
  def durable_save(id, file)
316
- raise "File '#{file}' is absent" unless File.exist?(file)
344
+ raise 'The ID of the durable is nil' if id.nil?
345
+ raise 'The ID of the durable must be a positive integer' unless id.positive?
346
+ raise 'The "file" of the durable is nil' if file.nil?
347
+ raise "The file '#{file}' is absent" unless File.exist?(file)
317
348
  elapsed(@loog) do
318
349
  with_retries(max_tries: @retries) do
319
350
  checked(
@@ -334,6 +365,9 @@ class BazaRb
334
365
  # @param [Integer] id The ID of the durable
335
366
  # @param [String] file The file to upload
336
367
  def durable_load(id, file)
368
+ raise 'The ID of the durable is nil' if id.nil?
369
+ raise 'The ID of the durable must be a positive integer' unless id.positive?
370
+ raise 'The "file" of the durable is nil' if file.nil?
337
371
  FileUtils.mkdir_p(File.dirname(file))
338
372
  elapsed(@loog) do
339
373
  File.open(file, 'wb') do |f|
@@ -362,6 +396,10 @@ class BazaRb
362
396
  # @param [Integer] id The ID of the durable
363
397
  # @param [String] owner The owner of the lock
364
398
  def durable_lock(id, owner)
399
+ raise 'The ID of the durable is nil' if id.nil?
400
+ raise 'The ID of the durable must be a positive integer' unless id.positive?
401
+ raise 'The "owner" of the lock is nil' if owner.nil?
402
+ raise 'The "owner" of the lock may not be empty' if owner.empty?
365
403
  elapsed(@loog) do
366
404
  with_retries(max_tries: @retries) do
367
405
  checked(
@@ -380,6 +418,10 @@ class BazaRb
380
418
  # @param [Integer] id The ID of the durable
381
419
  # @param [String] owner The owner of the lock
382
420
  def durable_unlock(id, owner)
421
+ raise 'The ID of the durable is nil' if id.nil?
422
+ raise 'The ID of the durable must be a positive integer' unless id.positive?
423
+ raise 'The "owner" of the lock is nil' if owner.nil?
424
+ raise 'The "owner" of the lock may not be empty' if owner.empty?
383
425
  elapsed(@loog) do
384
426
  with_retries(max_tries: @retries) do
385
427
  checked(
@@ -449,7 +491,11 @@ class BazaRb
449
491
  allowed = [allowed] unless allowed.is_a?(Array)
450
492
  mtd = (ret.request.original_options[:method] || '???').upcase
451
493
  url = ret.effective_url
452
- raise "#{mtd} #{url} timed out in #{ret.total_time}s" if ret.return_code == :operation_timedout
494
+ if ret.return_code == :operation_timedout
495
+ msg = "#{mtd} #{url} timed out in #{ret.total_time}s"
496
+ @loog.debug(msg)
497
+ raise msg
498
+ end
453
499
  log = "#{mtd} #{url} -> #{ret.code} (#{format('%0.2f', ret.total_time)}s)"
454
500
  if allowed.include?(ret.code)
455
501
  @loog.debug(log)
@@ -457,7 +503,6 @@ class BazaRb
457
503
  end
458
504
  @loog.debug("#{log}\n #{(ret.headers || {}).map { |k, v| "#{k}: #{v}" }.join("\n ")}")
459
505
  headers = ret.headers || {}
460
- p ret
461
506
  msg = [
462
507
  "Invalid response code ##{ret.code} ",
463
508
  "at #{mtd} #{url}",
data/test/test_baza-rb.rb CHANGED
@@ -196,7 +196,6 @@ class TestBazaRb < Minitest::Test
196
196
  end
197
197
 
198
198
  def test_push_compressed_content
199
- skip # this test is not stable, see https://github.com/yegor256/judges/issues/105
200
199
  req =
201
200
  with_http_server(200, 'yes') do |baza|
202
201
  baza.push('simple', 'hello, world!', %w[meta1 meta2 meta3])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: baza.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-13 00:00:00.000000000 Z
11
+ date: 2024-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backtrace