Class: MmMail::Message
- Inherits:
-
Object
- Object
- MmMail::Message
- Defined in:
- lib/mmmail.rb
Overview
A Message object representing an Email to be passed to a Transport.
Instance Method Summary collapse
-
#[](k) ⇒ String
Allow access of fields by header name or symbolic representation.
-
#[]=(k, v) ⇒ Object
Allow access of fields by header name or symbolic representation.
-
#initialize(opts = {}) ⇒ Message
constructor
Creates a new message with associated fields.
-
#method_missing(sym, *args) ⇒ Object
Override this method to allow any call to obj.meth or obj.meth= to set a header field on this object.
-
#recipients_list ⇒ Array<String>
Returns all the recipients in the To field.
-
#respond_to?(sym) ⇒ Boolean
Override this method to verify if a field has been set.
-
#to_s ⇒ String
Returns the message in its full form as expected by an SMTP server.
-
#valid? ⇒ Boolean
Checks if the message is valid.
Constructor Details
#initialize(opts = {}) ⇒ Message
Creates a new message with associated fields.
141 142 143 144 145 146 147 148 |
# File 'lib/mmmail.rb', line 141 def initialize(opts = {}) defaults = { :from => 'nobody@localhost', :subject => '', :body => '' } @headers = defaults.merge(opts) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args) ⇒ Object
Override this method to allow any call to obj.meth or obj.meth= to set a header field on this object.
175 176 177 178 179 180 181 182 183 |
# File 'lib/mmmail.rb', line 175 def method_missing(sym, *args) if sym.to_s =~ /=$/ self[sym.to_s[0..-2].to_sym] = args.first elsif @headers.has_key?(sym) self[sym] else super end end |
Instance Method Details
#[](k) ⇒ String
Allow access of fields by header name or symbolic representation
158 |
# File 'lib/mmmail.rb', line 158 def [](k) @headers[translate_header_to_sym(k)] end |
#[]=(k, v) ⇒ Object
Allow access of fields by header name or symbolic representation
166 |
# File 'lib/mmmail.rb', line 166 def []=(k, v) @headers[translate_header_to_sym(k)] = v end |
#recipients_list ⇒ Array<String>
Returns all the recipients in the To field.
208 209 210 |
# File 'lib/mmmail.rb', line 208 def recipients_list to.split(/\s*,\s*/) end |
#respond_to?(sym) ⇒ Boolean
Override this method to verify if a field has been set.
189 190 191 192 |
# File 'lib/mmmail.rb', line 189 def respond_to?(sym) return true if super @headers.has_key?(sym) end |
#to_s ⇒ String
Returns the message in its full form as expected by an SMTP server.
197 198 199 |
# File 'lib/mmmail.rb', line 197 def to_s [headers, body].join("\n") end |
#valid? ⇒ Boolean
Checks if the message is valid. Validity is based on having the From, To and Subject fields set. From and To must not be empty.
217 218 219 220 221 222 223 |
# File 'lib/mmmail.rb', line 217 def valid? [:from, :to].each do |field| return false if !self[field] || self[field].empty? end self[:subject] ? true : false end |