Module: MailForm::Delivery

Extended by:
ActiveSupport::Concern
Included in:
Base
Defined in:
lib/mail_form/delivery.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

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_attributesObject

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

Returns:

  • (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.

Returns:

  • (Boolean)

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