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.


150
151
152
153
154
155
156
157
# File 'lib/mail_form/delivery.rb', line 150

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.


161
162
163
164
165
# File 'lib/mail_form/delivery.rb', line 161

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