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!
perform_geocoding!()
Alias for: 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