interval_response 0.1.1 → 0.1.2
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:
|
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
|