def []=(name, value)
default_values = { :content_type => "#{set_mime_type(name)}; filename=\"#{name}\"",
:content_transfer_encoding => 'Base64',
:content_disposition => "attachment; filename=\"#{name}\"" }
if value.is_a?(Hash)
default_values[:body] = value.delete(:content) if value[:content]
default_values[:body] = value.delete(:data) if value[:data]
if value[:transfer_encoding]
default_values[:content_transfer_encoding] = value.delete(:transfer_encoding)
elsif value[:encoding]
default_values[:content_transfer_encoding] = value.delete(:encoding)
else
default_values[:body] = Mail::Encodings::Base64.encode(default_values[:body])
end
if value[:mime_type]
default_values[:content_type] = value.delete(:mime_type)
end
hash = default_values.merge(value)
else
default_values[:body] = Mail::Encodings::Base64.encode(value)
hash = default_values
end
@parts_list << Part.new(hash)
end