class AdWords::LocationDb
Public Class Methods
new()
click to toggle source
# File lib/adwords_location/location.rb, line 40 def initialize @location_records = {} @location_records_by_name = {} @location_records_by_canonical_name = {} records = Location.all records.each do |r| @location_records[r.criteria_id] = r @location_records_by_name[r.name] = r @location_records_by_canonical_name[r.canonical_name] = r end @location_records.freeze @location_records_by_name.freeze @location_records_by_canonical_name.freeze @city_2_dma = City2DMADb.new end
Public Instance Methods
all_postal_code_records()
click to toggle source
# File lib/adwords_location/location.rb, line 74 def all_postal_code_records @location_records.select do |id, record| record.us_postal_code? end end
all_postal_codes()
click to toggle source
# File lib/adwords_location/location.rb, line 80 def all_postal_codes @postal_code ||= get_call_postal_codes end
criteria_ids()
click to toggle source
# File lib/adwords_location/location.rb, line 58 def criteria_ids @location_records.keys end
dmas_by_city(criteria_id)
click to toggle source
# File lib/adwords_location/location.rb, line 94 def dmas_by_city(criteria_id) dmas = @city_2_dma.find_dmas_city_id criteria_id dmas.map do |dma| find_by_name dma.dma_region end end
find(criteria_id)
click to toggle source
# File lib/adwords_location/location.rb, line 62 def find(criteria_id) @location_records[criteria_id.to_i] end
find_by_canonical_name(cname)
click to toggle source
# File lib/adwords_location/location.rb, line 70 def find_by_canonical_name(cname) @location_records_by_canonical_name[cname] end
find_by_name(name)
click to toggle source
# File lib/adwords_location/location.rb, line 66 def find_by_name(name) @location_records_by_name[name] end
path(criteria_id)
click to toggle source
# File lib/adwords_location/location.rb, line 84 def path(criteria_id) path = [] location = find criteria_id while location do path << location.criteria_id location = find location.parent_id end path end
Private Instance Methods
get_call_postal_codes()
click to toggle source
# File lib/adwords_location/location.rb, line 103 def get_call_postal_codes codes = [] @location_records.each do |id, r| codes << r.postal_code if r.us_postal_code? end codes end