Class: BrickFTP::Utils::ChunkIO

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/brick_ftp/utils/chunk_io.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(io, chunk_size: nil) ⇒ ChunkIO

Wrap IO object.

Parameters:

  • io (IO, StringIO)

    an IO object.

  • chunk_size (Integer) (defaults to: nil)

    Size of chunk. This option is ignored if io is StringIO.



18
19
20
21
# File 'lib/brick_ftp/utils/chunk_io.rb', line 18

def initialize(io, chunk_size: nil)
  @io = io
  @chunk_size = chunk_size
end

Instance Attribute Details

#chunk_sizeObject (readonly)

Returns the value of attribute chunk_size.



10
11
12
# File 'lib/brick_ftp/utils/chunk_io.rb', line 10

def chunk_size
  @chunk_size
end

#ioObject (readonly)

Returns the value of attribute io.



10
11
12
# File 'lib/brick_ftp/utils/chunk_io.rb', line 10

def io
  @io
end

Instance Method Details

#each {|chunk| ... } ⇒ Object

Iterate with chunked IO object.

Yields:

  • (chunk)

    Give a chunk IO object to block.

Yield Parameters:

  • chunk (StringIO)

    a chunked IO object.



28
29
30
31
32
33
34
35
36
# File 'lib/brick_ftp/utils/chunk_io.rb', line 28

def each(&block)
  return enum_for(__method__) unless block

  if chunk_size && io.is_a?(IO)
    each_chunk(&block)
  else
    whole(&block)
  end
end