Method: Deas::Runner::SendFileBody#initialize

Defined in:
lib/deas/runner.rb

#initialize(env, path_name) ⇒ SendFileBody

Returns a new instance of SendFileBody.



238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
# File 'lib/deas/runner.rb', line 238

def initialize(env, path_name)
  @path_name = path_name

  file_size = @path_name.size? || Rack::Utils.bytesize(path_name.read)
  ranges = byte_ranges(env, file_size)
  if ranges.nil? || ranges.empty? || ranges.length > 1
    # No ranges or multiple ranges are not supported
    @range         = 0..file_size-1
    @content_range = nil
  else
    # single range
    @range         = ranges[0]
    @content_range = "bytes #{@range.begin}-#{@range.end}/#{file_size}"
  end

  @size = self.range_end - self.range_begin + 1
end