Module: Freemail

Defined in:
lib/freemail.rb,
lib/freemail/version.rb

Constant Summary collapse

ROOT =
File.join(File.dirname(File.expand_path(__FILE__)), '../')
DISPOSABLE =
Hash[File.readlines("#{ROOT}/data/disposable.txt").map { |d| [d.strip.downcase]
FREE =
VERSION =
'0.4.0'

Class Method Summary collapse

Class Method Details

.add_disposable_domains(custom_domains) ⇒ Object



8
9
10
11
# File 'lib/freemail.rb', line 8

def self.add_disposable_domains(custom_domains)
  custom_domains = [custom_domains] unless custom_domains.is_a? Array
  custom_domains.each { |domain| DISPOSABLE[domain] = nil }
end

.add_free_domains(custom_domains) ⇒ Object



13
14
15
16
# File 'lib/freemail.rb', line 13

def self.add_free_domains(custom_domains)
  custom_domains = [custom_domains] unless custom_domains.is_a? Array
  custom_domains.each { |domain| FREE[domain] = nil }
end

.disposable?(email) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/freemail.rb', line 22

def self.disposable?(email)
  DISPOSABLE.key?(get_domain(email))
end

.free?(email) ⇒ Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/freemail.rb', line 18

def self.free?(email)
  FREE.key?(get_domain(email))
end

.free_or_disposable?(email) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/freemail.rb', line 26

def self.free_or_disposable?(email)
  free?(email) || disposable?(email)
end

.get_domain(email) ⇒ Object



30
31
32
# File 'lib/freemail.rb', line 30

def self.get_domain(email)
  email.split('@').last.downcase.strip
end