class Address
Public Class Methods
address_fields()
click to toggle source
# File lib/address.rb, line 16 def self.address_fields %w{street number floor_adr} + geo_address_fields end
all_geo_address_fields()
click to toggle source
# File lib/address.rb, line 12 def self.all_geo_address_fields geo_address_fields + %w{latitude longitude} end
geo_address_fields()
click to toggle source
# File lib/address.rb, line 8 def self.geo_address_fields %w{city state state_code province province_code postal_code country country_code} end
type_of(name)
click to toggle source
# File lib/address.rb, line 20 def self.type_of name case name.to_sym when :latitude, :longitude, :postal_code :int else :string end end
Public Instance Methods
floor()
click to toggle source
# File lib/address.rb, line 41 def floor floor_adr.to_i end
geolocatable?()
click to toggle source
# File lib/address.rb, line 59 def geolocatable? !full.blank? end
perform_geocoding()
click to toggle source
# File lib/address.rb, line 63 def perform_geocoding return unless geolocatable? addressable.perform_geocoding if addressable.respond_to? :perform_geocoding end
Also aliased as: perform_geocoding!
region()
click to toggle source
# File lib/address.rb, line 45 def region state || province end
to_s()
click to toggle source
# File lib/address.rb, line 53 def to_s Address.address_fields.inject("") do |res, name| res << "#{name}: #{send(name)}\n" end end
xtra_fields()
click to toggle source
# File lib/address.rb, line 49 def xtra_fields [:floor_adr] end
Protected Instance Methods
set_defaults()
click to toggle source
# File lib/address.rb, line 71 def set_defaults write_attribute :country_code, 'DK' end
set_full()
click to toggle source
# File lib/address.rb, line 75 def set_full self.full = Address.address_fields.select do |name| !send(name).blank? end.map{|name| send(name) }.join(', ') end