Sha256: 2064b704b343db17b4777065f909148aeb3b9338948b596000049188c9fc8e3e

Contents?: true

Size: 633 Bytes

Versions: 14

Compression:

Stored size: 633 Bytes

Contents

module Dugway
  class ContactFormValidator

    attr_accessor :params

    def initialize(params)
      @params = params
    end

    def error_message
      if required_fields.any? { |f| params[f].blank? }
        'All fields are required'
      elsif param_does_not_match(:email, email_format)
        'Invalid email address'
      end
    end

    private

    def required_fields
      [ :name, :email, :subject, :message ]
    end

    def email_format
      /^([^@\s]+)@((?:[-a-zA-Z0-9]+\.)+[a-zA-Z]{2,})$/
    end

    def param_does_not_match(param_name, regex)
      !(params[param_name.to_sym] =~ regex)
    end

  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
dugway-1.1.0 lib/dugway/contact_form_validator.rb
dugway-1.0.14 lib/dugway/contact_form_validator.rb
dugway-1.0.13 lib/dugway/contact_form_validator.rb
dugway-1.0.12 lib/dugway/contact_form_validator.rb
dugway-1.0.10 lib/dugway/contact_form_validator.rb
dugway-1.0.9 lib/dugway/contact_form_validator.rb
dugway-1.0.8 lib/dugway/contact_form_validator.rb
dugway-1.0.7 lib/dugway/contact_form_validator.rb
dugway-1.0.6 lib/dugway/contact_form_validator.rb
dugway-1.0.5 lib/dugway/contact_form_validator.rb
dugway-1.0.4 lib/dugway/contact_form_validator.rb
dugway-1.0.3 lib/dugway/contact_form_validator.rb
dugway-1.0.2 lib/dugway/contact_form_validator.rb
dugway-1.0.1 lib/dugway/contact_form_validator.rb