Class: Sublimate::ChunkedFile
- Inherits:
-
Object
- Object
- Sublimate::ChunkedFile
- Defined in:
- lib/sublimate/chunked_file.rb
Overview
todo: This seems like it could just be IO objects that map to portions of a file
Class Method Summary collapse
Instance Method Summary collapse
- #each_chunk ⇒ Object
-
#initialize(path, opts = {}) ⇒ ChunkedFile
constructor
A new instance of ChunkedFile.
Constructor Details
#initialize(path, opts = {}) ⇒ ChunkedFile
Returns a new instance of ChunkedFile.
10 11 12 13 |
# File 'lib/sublimate/chunked_file.rb', line 10 def initialize(path, opts={}) @path = path @chunk_size = opts[:chunk_size] || self.class.default_chunk_size end |
Class Method Details
.default_chunk_size ⇒ Object
4 5 6 |
# File 'lib/sublimate/chunked_file.rb', line 4 def self.default_chunk_size @default_chunk_size ||= (1024 * 1024 * 500) end |
.default_chunk_size=(v) ⇒ Object
7 8 9 |
# File 'lib/sublimate/chunked_file.rb', line 7 def self.default_chunk_size=(v) @default_chunk_size = v end |
Instance Method Details
#each_chunk ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/sublimate/chunked_file.rb', line 15 def each_chunk counter = 0 offset = 0 file_size = File.size(@path) while offset < file_size data = IO.read(@path, @chunk_size, offset) details = {:counter => counter } yield(data, details) offset += @chunk_size counter += 1 end end |