interval_response 0.1.2 → 0.1.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 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