class As2::MimeGenerator::Part

Public Class Methods

new() click to toggle source
# File lib/as2/mime_generator.rb, line 4
def initialize
  @parts = []
  @body = ""
  @headers = {}
end

Public Instance Methods

[](name) click to toggle source
# File lib/as2/mime_generator.rb, line 10
def [](name)
  @headers[name]
end
[]=(name, value) click to toggle source
# File lib/as2/mime_generator.rb, line 14
def []=(name, value)
  @headers[name] = value
end
add_part(part) click to toggle source
# File lib/as2/mime_generator.rb, line 29
def add_part(part)
  gen_id unless @id
  @parts << part
  @body = nil
end
body() click to toggle source
# File lib/as2/mime_generator.rb, line 18
def body
  @body
end
body=(body) click to toggle source
# File lib/as2/mime_generator.rb, line 22
def body=(body)
  unless @parts.empty?
    raise "Cannot add plain budy to multipart"
  end
  @body = body
end
multipart?() click to toggle source
# File lib/as2/mime_generator.rb, line 35
def multipart?
  ! @parts.empty?
end
write(io) click to toggle source
# File lib/as2/mime_generator.rb, line 39
def write(io)
  @headers.each do |name, value|
    if multipart? && name =~ /content-type/i
      io.print "#{name}: #{value}; \r\n"
      io.print "\tboundary=\"----=_Part_#{@id}\"\r\n"
    else
      io.print "#{name}: #{value}\r\n"
    end
  end
  io.print "\r\n"
  if @parts.empty?
    io.print @body, "\r\n"
  else
    @parts.each do|p|
      io.print "------=_Part_#{@id}\r\n"
      p.write(io)
    end
    io.print "------=_Part_#{@id}--\r\n"
  end
  io.print "\r\n"
end

Private Instance Methods

gen_id() click to toggle source
# File lib/as2/mime_generator.rb, line 64
def gen_id
  @@counter += 1
  @id = "#{@@counter}_#{Time.now.strftime('%Y%m%d%H%M%S%L')}"
end