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_size ⇒ Object (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

#io ⇒ Object (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