module KickboxRails
Constants
- VERSION
Attributes
configuration[RW]
provider[RW]
Public Class Methods
configure() { |configuration| ... }
click to toggle source
# File lib/kickbox_rails.rb, line 10 def configure @configuration ||= Configuration.new yield(configuration) @provider = KickboxApi.new(url: @configuration.api_url, end_point: @configuration.api_resource, token: @configuration.api_key) end
invalid?(email)
click to toggle source
# File lib/kickbox_rails.rb, line 45 def invalid? email !valid? email end
valid?(email)
click to toggle source
# File lib/kickbox_rails.rb, line 32 def valid? email response = validate(email) valid_response?(response) end
valid_response?(response)
click to toggle source
# File lib/kickbox_rails.rb, line 37 def valid_response?(response) if @configuration.treat_unknown_as_valid [ 'valid', 'unknown' ].include?(response['result']) else [ 'valid' ].include?(response['result']) end end
validate(email)
click to toggle source
# File lib/kickbox_rails.rb, line 18 def validate email begin response = @provider.verify(email||String.new) # fallbacks if provider return success = false throw Exception unless response['success'] == 'true' || response['success'] == true response rescue Exception => e # If Kickbox service respond with Error we do fallback to basic validation basic_email_validation email end end
Private Class Methods
basic_email_validation(email, options = {})
click to toggle source
Basic validation with standard regexp for emails
# File lib/kickbox_rails.rb, line 52 def basic_email_validation email, options = {} result = if (email =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i).nil? { 'result' => 'invalid', 'reason' => options[:reason] || "invalid_email" } else { 'result' => 'valid', } end end