class Demandbase::DomainRecord

Public Class Methods

cleanse_domain(domain) click to toggle source

Clean the domain of things like ‘http(s)://’, ‘www’, ‘?foo=bar’, etc.

Return the domain string.

# File lib/demandbase/domain_record.rb, line 72
def self.cleanse_domain(domain)
  domain.downcase!
  domain = domain.sub(/^https?\:\/\//, '').sub(/^www./,'')
  domain = domain.split(  "/").first
  domain = domain.split("@").last

  domain = PublicSuffix.parse(domain)
  domain = "#{domain.sld}.#{domain.tld}"
  domain
end
is_domain(query) click to toggle source

Ascertain whether the given query string is a valid domain name.

Returns true if it’s a valid domain name; false otherwise.

# File lib/demandbase/domain_record.rb, line 12
def self.is_domain(query)
  begin
    result = PublicSuffix.valid?((Demandbase::DomainRecord.cleanse_domain(query)))
    result
  rescue => e
    false
  end
end
new(domain) click to toggle source

Instantiate a new Demandbase Domain Record from a domain name.

# File lib/demandbase/domain_record.rb, line 22
def initialize(domain)
  raise Demandbase::RTIDNotSetError if rtid_key.nil?

  begin
    query = Demandbase::DomainRecord.cleanse_domain(domain)
    url = api_url + "&query=#{query}"
  rescue => e
    raise Demandbase::ParseError
  end

  begin
    response = JSON.parse(RestClient.get(url))

    return nil unless response["domain"]

    @company_name     = response["domain"]["company_name"]
    @demandbase_sid   = response["domain"]["demandbase_sid"]
    @marketing_alias  = response["domain"]["marketing_alias"]
    @industry         = response["domain"]["industry"]
    @sub_industry     = response["domain"]["sub_industry"]
    @employee_count   = response["domain"]["employee_count"]
    @primary_sic      = response["domain"]["primary_sic"]
    @street_address   = response["domain"]["street_address"]
    @city             = response["domain"]["city"]
    @state            = response["domain"]["state"]
    @zip              = response["domain"]["zip"]
    @country          = response["domain"]["country"]
    @country_name     = response["domain"]["country_name"]
    @phone            = response["domain"]["phone"]
    @stock_ticker     = response["domain"]["stock_ticker"]
    @web_site         = response["domain"]["web_site"]
    @annual_sales     = response["domain"]["annual_sales"]
    @revenue_range    = response["domain"]["revenue_range"]
    @employee_range   = response["domain"]["employee_range"]
    @b2b              = response["domain"]["b2b"]
    @b2c              = response["domain"]["b2c"]
    @traffic          = response["domain"]["traffic"]
    @latitude         = response["domain"]["latitude"]
    @longitude        = response["domain"]["longitude"]
    @fortune_1000     = response["domain"]["fortune_1000"]
    @forbes_2000      = response["domain"]["forbes_2000"]
  rescue => e
    raise ServerError
  end
end

Public Instance Methods

api_url() click to toggle source

Return the base URL for the Demandbase domain API

# File lib/demandbase/domain_record.rb, line 5
def api_url
  "http://api.demandbase.com/api/v1/domain.json?key=#{rtid_key}"
end