lib/earth/locality/zip_code.rb in earth-1.0.3 vs lib/earth/locality/zip_code.rb in earth-1.1.0

- old
+ new

@@ -1,34 +1,36 @@ require 'earth/model' require 'earth/loader' -Earth::Loader.load_plugins require 'earth/locality/climate_division' require 'earth/locality/country' require 'earth/locality/egrid_subregion' require 'earth/locality/state' require 'earth/electricity/electric_market' require 'earth/electricity/electric_utility' +require 'geocoder' + class ZipCode < ActiveRecord::Base data_miner do process "Ensure Country is imported because it's like a belongs_to association" do Country.run_data_miner! end end extend Earth::Model + extend Geocoder::Model::ActiveRecord TABLE_STRUCTURE = <<-EOS CREATE TABLE zip_codes ( name CHARACTER VARYING(255) NOT NULL PRIMARY KEY, state_postal_abbreviation CHARACTER VARYING(255), description CHARACTER VARYING(255), - latitude CHARACTER VARYING(255), - longitude CHARACTER VARYING(255), + latitude FLOAT, + longitude FLOAT, egrid_subregion_abbreviation CHARACTER VARYING(255), climate_division_name CHARACTER VARYING(255), population INTEGER ); @@ -41,23 +43,15 @@ belongs_to :egrid_subregion, :foreign_key => 'egrid_subregion_abbreviation' has_many :electric_markets, :foreign_key => 'zip_code_name' has_many :electric_utilities, :through => :electric_markets scope :known_subregion, where('egrid_subregion_abbreviation IS NOT NULL') - + + reverse_geocoded_by :latitude, :longitude + def country Country.united_states end - - # Used by LodgingProperty custom find to find properties near to a zip code - def latitude_longitude - [latitude, longitude] - end - - # Used by LodgingProperty custom find to find properties near to a zip code - acts_as_mappable :default_units => :kilometres, - :lat_column_name => :latitude, - :lng_column_name => :longitude - + warn_unless_size 43770 warn_if_nonexistent_owner_except :egrid_subregion end