Module: MailForm::Delivery
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#deliver! ⇒ Object
Deliver the resource without running any validation.
-
#mail_form_attributes ⇒ Object
Returns a hash of attributes, according to the attributes existent in self.class.mail_attributes.
- #not_spam? ⇒ Boolean
-
#spam? ⇒ Boolean
In development, raises an error if the captcha field is not blank.
Instance Method Details
#deliver! ⇒ Object
Deliver the resource without running any validation.
155 156 157 158 159 160 161 162 |
# File 'lib/mail_form/delivery.rb', line 155 def deliver! mailer = MailForm::Notifier.contact(self) if mailer.respond_to?(:deliver_now) mailer.deliver_now else mailer.deliver end end |
#mail_form_attributes ⇒ Object
Returns a hash of attributes, according to the attributes existent in self.class.mail_attributes.
166 167 168 169 170 |
# File 'lib/mail_form/delivery.rb', line 166 def mail_form_attributes self.class.mail_attributes.each_with_object({}) do |attr, hash| hash[attr.to_s] = send(attr) end end |
#not_spam? ⇒ Boolean
145 146 147 |
# File 'lib/mail_form/delivery.rb', line 145 def not_spam? !spam? end |
#spam? ⇒ Boolean
In development, raises an error if the captcha field is not blank. This is is good to remember that the field should be hidden with CSS and shown only to robots.
In test and in production, it returns true if all captcha fields are blank, returns false otherwise.
131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/mail_form/delivery.rb', line 131 def spam? self.class.mail_captcha.each do |field| next if send(field).blank? if defined?(Rails) && Rails.env.development? raise ScriptError, "The captcha field #{field} was supposed to be blank" else return true end end false end |