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) —

    an IO object.

  • chunk_size (Integer) (defaults to: nil) —

    Size of chunk.



15
16
17
18
# File 'lib/brick_ftp/utils/chunk_io.rb', line 15

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.



8
9
10
# File 'lib/brick_ftp/utils/chunk_io.rb', line 8

def chunk_size
  @chunk_size
end

#io ⇒ Object (readonly)

Returns the value of attribute io.



8
9
10
# File 'lib/brick_ftp/utils/chunk_io.rb', line 8

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.



25
26
27
28
29
30
31
32
33
# File 'lib/brick_ftp/utils/chunk_io.rb', line 25

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

  if chunk_size
    each_chunk(&block)
  else
    whole(&block)
  end
end