interval_response 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a4a58f786564c16dc9c4816023274cabe9d88d82580bf3dae0775fd866a2b4a6
|
4
|
+
data.tar.gz: f02c691b995400f9ac06a2a815584d82499101b4ca0f98dfc6afc39fd4cc5aa2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7864a9e443a55bea621b01bf01eb72923de2e3cbb5dec682f0422224fead3b5ae2248c9daae62fde1c0c129a5ed67383e0d7e0259a2733674a9feba70e51c0b
|
7
|
+
data.tar.gz: 787ec5389f5d958aded3bc8ae1217ebee51da2a6dad327c88150aeeaad9282560324337a4c6b753d49207fad3319580ed9c402f95f8ec649666738b55d6e58bf
|
@@ -18,13 +18,19 @@ class IntervalResponse::Sequence
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def <<(segment)
|
21
|
-
return self if segment.size == 0
|
22
21
|
segment_size_or_bytesize = segment.respond_to?(:bytesize) ? segment.bytesize : segment.size
|
23
|
-
|
24
|
-
|
22
|
+
return self if segment_size_or_bytesize == 0
|
23
|
+
|
24
|
+
add_segment(segment, size: segment_size_or_bytesize)
|
25
|
+
self
|
25
26
|
self
|
26
27
|
end
|
27
28
|
|
29
|
+
def add_segment(segment, size:)
|
30
|
+
@intervals << Interval.new(segment, size, @size, @intervals.length)
|
31
|
+
@size += size
|
32
|
+
end
|
33
|
+
|
28
34
|
def each_in_range(from_range_in_resource)
|
29
35
|
# Skip empty ranges
|
30
36
|
requested_range_size = (from_range_in_resource.end - from_range_in_resource.begin) + 1
|
@@ -40,6 +40,14 @@ RSpec.describe IntervalResponse::Sequence do
|
|
40
40
|
expect(etag_for_sequence.bytesize).to be > 8
|
41
41
|
end
|
42
42
|
|
43
|
+
it 'accepts objects that only respond to #bytesize and not #size' do
|
44
|
+
a = double(:a, bytesize: 6)
|
45
|
+
b = double(:b, bytesize: 12)
|
46
|
+
c = double(:c, bytesize: 17)
|
47
|
+
seq = described_class.new(a, b, c)
|
48
|
+
expect(seq.size).to eq(6 + 12 + 17)
|
49
|
+
end
|
50
|
+
|
43
51
|
it 'generates the ETag dependent on the sequence composition' do
|
44
52
|
a = double(:a, size: 6)
|
45
53
|
b = double(:b, size: 12)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: interval_response
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julik Tarkhanov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|