interval_response 0.1.2 → 0.1.4

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: a4a58f786564c16dc9c4816023274cabe9d88d82580bf3dae0775fd866a2b4a6
4
- data.tar.gz: f02c691b995400f9ac06a2a815584d82499101b4ca0f98dfc6afc39fd4cc5aa2
3
+ metadata.gz: de097b24eeeebadc3a25e7c9a5e1731b3e53d356b2b51dab43c95b0fd7e1499b
4
+ data.tar.gz: bd529e7dd25f1d0968db781bc194722501da7940c6fb687a14cb98d84033d813
5
5
  SHA512:
6
- metadata.gz: f7864a9e443a55bea621b01bf01eb72923de2e3cbb5dec682f0422224fead3b5ae2248c9daae62fde1c0c129a5ed67383e0d7e0259a2733674a9feba70e51c0b
7
- data.tar.gz: 787ec5389f5d958aded3bc8ae1217ebee51da2a6dad327c88150aeeaad9282560324337a4c6b753d49207fad3319580ed9c402f95f8ec649666738b55d6e58bf
6
+ metadata.gz: d9fe05b599f91e6ad913667abdbc7ab9c84b8fe8ebbabee86b057871253b7e947bac1ee6f7c1ad8eb1e62c7fab89b5a5d3f3193972f7bfe88b3ced2ed4bd2753
7
+ data.tar.gz: 279349c6ae98f20b861434d6d6e150379fe142ea3219f3b7c963542c61a7cf04370f2606a3f63fbb526e0f0f7e79138d73af00f36a25ff2754bf936bd6dbb2a1
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.add_runtime_dependency "rack"
38
38
  spec.add_runtime_dependency "measurometer"
39
39
 
40
- spec.add_development_dependency "bundler", "~> 1.17"
40
+ spec.add_development_dependency "bundler"
41
41
  spec.add_development_dependency "rake", "~> 12"
42
42
  spec.add_development_dependency "rspec", "~> 3"
43
43
  spec.add_development_dependency "complexity_assert"
@@ -51,7 +51,7 @@ module IntervalResponse
51
51
 
52
52
  # Case 2 - Client did send us a Range header, but Rack discarded
53
53
  # it because it is invalid and cannot be satisfied
54
- return Invalid.new(interval_map) if http_range_header_value_or_nil && http_ranges.empty?
54
+ return Invalid.new(interval_map) if http_range_header_value_or_nil && (http_ranges.nil? || http_ranges.empty?)
55
55
 
56
56
  # Case 3 - entire resource
57
57
  return Full.new(interval_map) if http_ranges.length == 1 && http_ranges.first == (0..(interval_map.size - 1))
@@ -23,7 +23,6 @@ class IntervalResponse::Sequence
23
23
 
24
24
  add_segment(segment, size: segment_size_or_bytesize)
25
25
  self
26
- self
27
26
  end
28
27
 
29
28
  def add_segment(segment, size:)
@@ -1,3 +1,3 @@
1
1
  module IntervalResponse
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -58,6 +58,18 @@ RSpec.describe IntervalResponse do
58
58
  }.to yield_successive_args([segment_a, 0..2], [segment_b, 0..3], [segment_c, 0..0])
59
59
  end
60
60
 
61
+ it 'returns 416 if the requested range is invalid' do
62
+ response = IntervalResponse.new(seq, "bytes=6-5", _if_range = nil)
63
+ expect(response.status_code).to eq(416)
64
+ expect(response.headers).to eq(
65
+ "Accept-Ranges" => "bytes",
66
+ 'Content-Length' => IntervalResponse::Invalid::ERROR_JSON.bytesize.to_s,
67
+ "Content-Type" => "application/json",
68
+ 'Content-Range' => "bytes */#{seq.size}",
69
+ 'ETag' => seq.etag
70
+ )
71
+ end
72
+
61
73
  it 'returns a single HTTP range if the client asked for it and it can be satisfied' do
62
74
  response = IntervalResponse.new(seq, "bytes=2-4", _if_range = nil)
63
75
  expect(response.status_code).to eq(206)
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.2
4
+ version: 0.1.4
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-12-07 00:00:00.000000000 Z
11
+ date: 2020-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '1.17'
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '1.17'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -176,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
176
176
  - !ruby/object:Gem::Version
177
177
  version: '0'
178
178
  requirements: []
179
- rubygems_version: 3.0.6
179
+ rubygems_version: 3.0.3
180
180
  signing_key:
181
181
  specification_version: 4
182
182
  summary: Assemble HTTP responses from spliced sequences of payloads