class IntervalResponse::Single
Serves out a response that consists of one HTTP Range, which is always not the entire resource
Public Class Methods
new(interval_sequence, http_range)
click to toggle source
@param http_range
# File lib/interval_response/single.rb, line 5 def initialize(interval_sequence, http_range) @interval_sequence = interval_sequence @http_range = http_range end
Public Instance Methods
content_length()
click to toggle source
# File lib/interval_response/single.rb, line 21 def content_length @http_range.end - @http_range.begin + 1 end
each() { |segment, range_in_segment| ... }
click to toggle source
Serve the part of the interval map
# File lib/interval_response/single.rb, line 11 def each @interval_sequence.each_in_range(@http_range) do |segment, range_in_segment| yield(segment, range_in_segment) end end
headers()
click to toggle source
# File lib/interval_response/single.rb, line 25 def headers c_range = ('bytes %d-%d/%d' % [@http_range.begin, @http_range.end, @interval_sequence.size]) { 'Accept-Ranges' => 'bytes', 'Content-Length' => (@http_range.end - @http_range.begin + 1).to_s, 'Content-Type' => 'binary/octet-stream', 'Content-Range' => c_range, 'ETag' => etag, } end
satisfied_with_first_interval?()
click to toggle source
# File lib/interval_response/single.rb, line 36 def satisfied_with_first_interval? @interval_sequence.first_interval_only?(@http_range) end
status_code()
click to toggle source
# File lib/interval_response/single.rb, line 17 def status_code 206 end