public Method

Mail.[]=( key, val )

Allows you to set or delete TMail header objects at will. Eamples:

@mail = TMail::Mail.new
@mail['to'].to_s       # => 'mikel@test.com.au'
@mail['to'] = 'mikel@elsewhere.org'
@mail['to'].to_s       # => 'mikel@elsewhere.org'
@mail.encoded          # => "To: mikel@elsewhere.org\r\n\r\n"
@mail['to'] = nil
@mail['to'].to_s       # => nil
@mail.encoded          # => "\r\n"

Note: setting mail[] = nil actualy deletes the header field in question from the object, it does not just set the value of the hash to nil

Source Code

# File action_mailer/vendor/tmail-1.2.2/tmail/mail.rb, line 213
def []=( key, val )
  dkey = key.downcase

  if val.nil?
    @header.delete dkey
    return nil
  end

  case val
  when String
    header = new_hf(key, val)
  when HeaderField
    ;
  when Array
    ALLOW_MULTIPLE.include? dkey or
            raise ArgumentError, "#{key}: Header must not be multiple"
    @header[dkey] = val
    return val
  else
    header = new_hf(key, val.to_s)
  end
  if ALLOW_MULTIPLE.include? dkey
    (@header[dkey] ||= []).push header
  else
    @header[dkey] = header
  end

  val
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.