baza.rb 0.9.3 → 0.9.4
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/lib/baza-rb/version.rb +1 -1
- data/lib/baza-rb.rb +5 -0
- data/test/test_baza-rb.rb +12 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 308b7b84631ae61841fb9d58192f6c257fc5b60d68dd8b95c01caf5cf53f39a8
|
4
|
+
data.tar.gz: ddafe4b9c94292616c5a9588b057869b63ccfce655954bd87f79bb54182ac800
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4077997c0ac3aea8d026c48fd63472f9c4d146f091656552a7ae3a72814fa507e915c2d75fc93d76fdb85640235503c611bc82de5489406449276023edd5e3e
|
7
|
+
data.tar.gz: e39d0fbdc6dadf2c53edc647c4ef7acf9194af9d9968299af4a7a2fafbbae6e7892a811e0337049e742f5e2353db8d86e7c2370291b3cde32e9a1d0ab5fda0a6
|
data/lib/baza-rb/version.rb
CHANGED
data/lib/baza-rb.rb
CHANGED
@@ -322,6 +322,7 @@ class BazaRb
|
|
322
322
|
# @raise [ServerFailure] If the save operation fails
|
323
323
|
def durable_save(id, file, chunk_size: 1_000_000)
|
324
324
|
raise 'The ID of the durable is nil' if id.nil?
|
325
|
+
raise 'The ID of the durable must be an Integer' unless id.is_a?(Integer)
|
325
326
|
raise 'The ID of the durable must be a positive integer' unless id.positive?
|
326
327
|
raise 'The "file" of the durable is nil' if file.nil?
|
327
328
|
raise "The file '#{file}' is absent" unless File.exist?(file)
|
@@ -338,6 +339,7 @@ class BazaRb
|
|
338
339
|
# @raise [ServerFailure] If the load operation fails
|
339
340
|
def durable_load(id, file)
|
340
341
|
raise 'The ID of the durable is nil' if id.nil?
|
342
|
+
raise 'The ID of the durable must be an Integer' unless id.is_a?(Integer)
|
341
343
|
raise 'The ID of the durable must be a positive integer' unless id.positive?
|
342
344
|
raise 'The "file" of the durable is nil' if file.nil?
|
343
345
|
elapsed(@loog) do
|
@@ -353,6 +355,7 @@ class BazaRb
|
|
353
355
|
# @raise [ServerFailure] If the lock operation fails
|
354
356
|
def durable_lock(id, owner)
|
355
357
|
raise 'The ID of the durable is nil' if id.nil?
|
358
|
+
raise 'The ID of the durable must be an Integer' unless id.is_a?(Integer)
|
356
359
|
raise 'The ID of the durable must be a positive integer' unless id.positive?
|
357
360
|
raise 'The "owner" of the lock is nil' if owner.nil?
|
358
361
|
raise 'The "owner" of the lock may not be empty' if owner.empty?
|
@@ -372,6 +375,7 @@ class BazaRb
|
|
372
375
|
# @raise [ServerFailure] If the unlock operation fails
|
373
376
|
def durable_unlock(id, owner)
|
374
377
|
raise 'The ID of the durable is nil' if id.nil?
|
378
|
+
raise 'The ID of the durable must be an Integer' unless id.is_a?(Integer)
|
375
379
|
raise 'The ID of the durable must be a positive integer' unless id.positive?
|
376
380
|
raise 'The "owner" of the lock is nil' if owner.nil?
|
377
381
|
raise 'The "owner" of the lock may not be empty' if owner.empty?
|
@@ -783,6 +787,7 @@ class BazaRb
|
|
783
787
|
raise "Range is not valid (#{range.inspect})" unless e.match?(/^[0-9]+$/)
|
784
788
|
len = ret.headers['Content-Length'].to_i
|
785
789
|
break if e.to_i == total.to_i - 1
|
790
|
+
break if total == '0'
|
786
791
|
chunk += 1
|
787
792
|
sleep(1) if len.zero?
|
788
793
|
end
|
data/test/test_baza-rb.rb
CHANGED
@@ -480,6 +480,18 @@ class TestBazaRb < Minitest::Test
|
|
480
480
|
end
|
481
481
|
end
|
482
482
|
|
483
|
+
def test_durable_load_empty_content
|
484
|
+
WebMock.disable_net_connect!
|
485
|
+
Dir.mktmpdir do |dir|
|
486
|
+
file = File.join(dir, 'loaded.txt')
|
487
|
+
stub_request(:get, 'https://example.org:443/durables/42')
|
488
|
+
.with(headers: { 'X-Zerocracy-Token' => '000' })
|
489
|
+
.to_return(status: 206, body: '', headers: { 'Content-Range' => 'bytes 0-0/0' })
|
490
|
+
fake_baza.durable_load(42, file)
|
491
|
+
assert_equal('', File.read(file))
|
492
|
+
end
|
493
|
+
end
|
494
|
+
|
483
495
|
def test_durable_load_in_chunks
|
484
496
|
WebMock.disable_net_connect!
|
485
497
|
Dir.mktmpdir do |dir|
|