Class: Mocodo::MultiPartFormDataStream

Inherits:
Object
  • Object
show all
Defined in:
lib/mocodo/character_recognition.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, filename, file, boundary = nil) ⇒ MultiPartFormDataStream

Returns a new instance of MultiPartFormDataStream.



150
151
152
153
154
155
156
157
158
# File 'lib/mocodo/character_recognition.rb', line 150

def initialize(name, filename, file, boundary=nil)
  @boundary = boundary || "boundary"
  first = [boundary_line, content_disposition(name, filename), "", ""].join(new_line)
  last = ["", boundary_last, ""].join(new_line)
  @first = StringIO.new(first)
  @file = file
  @last = StringIO.new(last)
  @size = @first.size + @file.size + @last.size
end

Instance Method Details

#boundary_lastObject



165
166
167
# File 'lib/mocodo/character_recognition.rb', line 165

def boundary_last
  "--#{@boundary}--"
end

#boundary_lineObject



162
163
164
# File 'lib/mocodo/character_recognition.rb', line 162

def boundary_line
  "--#{@boundary}"
end

#content_disposition(name, filename) ⇒ Object



168
169
170
# File 'lib/mocodo/character_recognition.rb', line 168

def content_disposition(name, filename)
  "content-disposition: form-data; name=\"#{name}\"; filename=\"#{filename}\""
end

#content_typeObject



159
160
161
# File 'lib/mocodo/character_recognition.rb', line 159

def content_type
  "multipart/form-data; boundary=#{@boundary}"
end

#eof?Boolean

Returns:

  • (Boolean)


182
183
184
# File 'lib/mocodo/character_recognition.rb', line 182

def eof?
  @last.eof?
end

#new_lineObject



171
172
173
# File 'lib/mocodo/character_recognition.rb', line 171

def new_line
  "\r\n"
end

#read(len = nil, buf = nil) ⇒ Object



174
175
176
177
178
# File 'lib/mocodo/character_recognition.rb', line 174

def read(len=nil, buf=nil)
  return @first.read(len, buf) unless @first.eof?
  return @file.read(len, buf) unless @file.eof?
  return @last.read(len, buf)
end

#sizeObject



179
180
181
# File 'lib/mocodo/character_recognition.rb', line 179

def size
  @size
end