class EmailCheck::EmailAddress
Public Class Methods
new(email_address)
click to toggle source
# File lib/email_check/email_address.rb, line 7 def initialize(email_address) @email_address = email_address.downcase @email = Mail::Address.new(@email_address) rescue nil end
Public Instance Methods
blacklisted_domain?()
click to toggle source
# File lib/email_check/email_address.rb, line 24 def blacklisted_domain? EmailCheck.blacklisted_domains.each do |domain| return true if @email.domain.include?(domain) end false end
blocked_username?()
click to toggle source
# File lib/email_check/email_address.rb, line 36 def blocked_username? EmailCheck.blocked_usernames.include?(@email.local.downcase) end
disposable?()
click to toggle source
# File lib/email_check/email_address.rb, line 16 def disposable? EmailCheck.disposable_email_domains.include?(@email.domain) end
domain_has_mx?()
click to toggle source
# File lib/email_check/email_address.rb, line 40 def domain_has_mx? return false unless format_valid? val = false Resolv::DNS.open do |dns| val = dns.getresources(@email.domain, Resolv::DNS::Resource::IN::MX).any? end return val end
format_valid?()
click to toggle source
# File lib/email_check/email_address.rb, line 12 def format_valid? @format_valid ||= check_format() end
free_email_provider?()
click to toggle source
# File lib/email_check/email_address.rb, line 20 def free_email_provider? EmailCheck.free_email_domains.include?(@email.domain) end
whitelisted_domain?()
click to toggle source
# File lib/email_check/email_address.rb, line 32 def whitelisted_domain? EmailCheck.whitelisted_domains.include?(@email.domain) end
Private Instance Methods
check_format()
click to toggle source
# File lib/email_check/email_address.rb, line 50 def check_format return false unless @email if @email.domain && @email.address == @email_address domain = @email.domain # Must have a ., Must not have consecutive .s domain.include?('.') && !domain.match(/\.{2,}/) else false end end