Class: Wsv::Response::FileBody
- Inherits:
-
Object
- Object
- Wsv::Response::FileBody
- Defined in:
- lib/wsv/response/file_body.rb
Instance Method Summary collapse
- #bytesize ⇒ Object
-
#initialize(path, offset: 0, length: nil) ⇒ FileBody
constructor
A new instance of FileBody.
- #to_s ⇒ Object
- #write_to(io) ⇒ Object
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
#bytesize ⇒ Object
19 20 21 |
# File 'lib/wsv/response/file_body.rb', line 19 def bytesize @length end |
#to_s ⇒ Object
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 |