Class: Wsv::Response::FileBody

Inherits:
Object
  • Object
show all
Defined in:
lib/wsv/response/file_body.rb

Instance Method Summary collapse

Constructor Details

#initialize(path, offset: 0, length: nil) ⇒ FileBody

Returns a new instance of FileBody.



6
7
8
9
10
# File 'lib/wsv/response/file_body.rb', line 6

def initialize(path, offset: 0, length: nil)
  @path = path
  @offset = offset
  @length = length || (File.size(path) - offset)
end

Instance Method Details

#bytesizeObject



19
20
21
# File 'lib/wsv/response/file_body.rb', line 19

def bytesize
  @length
end

#to_sObject



12
13
14
15
16
17
# File 'lib/wsv/response/file_body.rb', line 12

def to_s
  File.open(@path, "rb") do |f|
    f.seek(@offset)
    f.read(@length)
  end
end

#write_to(io) ⇒ Object



23
24
25
26
27
28
# File 'lib/wsv/response/file_body.rb', line 23

def write_to(io)
  File.open(@path, "rb") do |f|
    f.seek(@offset)
    IO.copy_stream(f, io, @length)
  end
end