Class: Demandbase::DomainRecord
- Defined in:
- lib/demandbase/domain_record.rb
Instance Attribute Summary
Attributes inherited from Record
#annual_sales, #b2b, #b2c, #city, #company_name, #country, #country_name, #demandbase_sid, #employee_count, #employee_range, #forbes_2000, #fortune_1000, #industry, #latitude, #longitude, #marketing_alias, #phone, #primary_sic, #revenue_range, #state, #stock_ticker, #street_address, #sub_industry, #traffic, #web_site, #zip
Class Method Summary collapse
-
.cleanse_domain(domain) ⇒ Object
Clean the domain of things like ‘http(s)://’, ‘www’, ‘?foo=bar’, etc.
-
.is_domain(query) ⇒ Object
Ascertain whether the given query string is a valid domain name.
Instance Method Summary collapse
-
#api_url ⇒ Object
Return the base URL for the Demandbase domain API.
-
#initialize(domain) ⇒ DomainRecord
constructor
Instantiate a new Demandbase Domain Record from a domain name.
Methods inherited from Record
#is_academic?, #is_government?, #is_nonprofit?, #rtid_key
Constructor Details
#initialize(domain) ⇒ DomainRecord
Instantiate a new Demandbase Domain Record from a domain name.
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# 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 |
Class Method Details
.cleanse_domain(domain) ⇒ Object
Clean the domain of things like ‘http(s)://’, ‘www’, ‘?foo=bar’, etc.
Return the domain string.
72 73 74 75 76 77 78 79 80 81 |
# 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) ⇒ Object
Ascertain whether the given query string is a valid domain name.
Returns true if it’s a valid domain name; false otherwise.
12 13 14 15 16 17 18 19 |
# 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 |
Instance Method Details
#api_url ⇒ Object
Return the base URL for the Demandbase domain API
5 6 7 |
# File 'lib/demandbase/domain_record.rb', line 5 def api_url "http://api.demandbase.com/api/v1/domain.json?key=#{rtid_key}" end |