Module: TowerdataEmail

Defined in:
lib/towerdata_email.rb,
lib/towerdata_email/version.rb,
lib/towerdata_email/providers.rb,
lib/towerdata_email/validators.rb

Defined Under Namespace

Modules: ConnectionData, Validators Classes: BadAPIConnectionError, Config, Demographics, Email, MustProvideTokenError, NotSupportedByProviderError, Postal, Provider, Response, TokenInvalidError, TowerDataDefault

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.configObject

Configuration



17
18
19
# File 'lib/towerdata_email.rb', line 17

def self.config
  @config ||= TowerdataEmail::Config.new
end

.config=(new_config) ⇒ Object



21
22
23
# File 'lib/towerdata_email.rb', line 21

def self.config=(new_config)
  @config = new_config
end

.configure {|config| ... } ⇒ Object

Yields:

Raises:



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

def self.configure
  yield config if block_given?
  raise MustProvideTokenError, "Your provider requires an API token" unless config.token
end

.demographics_data(email) ⇒ Object



58
59
60
61
# File 'lib/towerdata_email.rb', line 58

def self.demographics_data(email)
  response  = lead_data(email)
  response.demographics
end

.lead_data(email) ⇒ Object

Before every call check cache first, is just a hash of response objects that is not persisted given provider validates email and returns it as TowerdataEmail::Response Object



41
42
43
# File 'lib/towerdata_email.rb', line 41

def self.lead_data(email)
  provider.lead_data(email)
end

.postal_data(email) ⇒ Object

needs special API permissions



51
52
53
54
55
56
# File 'lib/towerdata_email.rb', line 51

def self.postal_data(email)
  if config.postal
    response  = lead_data(email)
    response.postal
  end
end

.providerObject

defaults to Tower Data see providers.rb



31
32
33
# File 'lib/towerdata_email.rb', line 31

def self.provider
  @provider ||= TowerdataEmail::TowerDataDefault.new
end

.provider=(new_prov) ⇒ Object



35
36
37
# File 'lib/towerdata_email.rb', line 35

def self.provider=(new_prov)
  @provider = new_prov
end

.validate_email(email) ⇒ Object



45
46
47
48
# File 'lib/towerdata_email.rb', line 45

def self.validate_email(email)
  response  = lead_data(email)
  response.email
end

Instance Method Details

#initializeObject



12
13
14
# File 'lib/towerdata_email.rb', line 12

def initialize

end