Class: Daytona::MultipartDownloadStreamParser

Inherits:
Object
  • Object
show all
Defined in:
lib/daytona/file_transfer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(&on_file_chunk) ⇒ MultipartDownloadStreamParser

Returns a new instance of MultipartDownloadStreamParser.



14
15
16
17
18
19
20
21
# File 'lib/daytona/file_transfer.rb', line 14

def initialize(&on_file_chunk)
  @on_file_chunk = on_file_chunk
  @boundary_token = nil
  @buffer = String.new.b
  @state = :preamble
  @part_name = nil
  @error_buffer = String.new.b
end

Instance Attribute Details

#boundary_token=(value) ⇒ Object (writeonly)

Sets the attribute boundary_token

Parameters:

  • value

    the value to set the attribute boundary_token to.



12
13
14
# File 'lib/daytona/file_transfer.rb', line 12

def boundary_token=(value)
  @boundary_token = value
end

#error_messageObject (readonly)

Returns the value of attribute error_message.



11
12
13
# File 'lib/daytona/file_transfer.rb', line 11

def error_message
  @error_message
end

Instance Method Details

#<<(chunk) ⇒ Object



23
24
25
26
# File 'lib/daytona/file_transfer.rb', line 23

def <<(chunk)
  @buffer << chunk.b
  process!
end

#finish!Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/daytona/file_transfer.rb', line 28

def finish!
  process!

  return if @state == :done || @buffer.empty?

  emit(@buffer)
  finalize_part!
  @buffer = String.new.b
  @state = :done
end