class DcAddressLookup::Location

Public Class Methods

from_table(table) click to toggle source
# File lib/dc_address_lookup/location.rb, line 3
def self.from_table(table)
  location = self.new
  return location unless table

  table.each do |key,value|
    key = key.downcase

    if value.class == String
      value = value.gsub(/\A#{key.split("_").first}\b/i, "").squeeze("\s").strip
      value = value.to_i if value =~ /\A[1-9][0-9]*\z/
      value = value.to_f if value =~ /\A[0-9]+\.[0-9]+\z/
    elsif value.class == Float
      value = value.to_i if value.to_s =~ /\A[0-9]+\.0\z/
    end

    location.data[key] = value
  end

  location
end

Public Instance Methods

data() click to toggle source
# File lib/dc_address_lookup/location.rb, line 44
def data
  @data ||= {}
end
method_missing(method_sym, *arguments, &block) click to toggle source
Calls superclass method
# File lib/dc_address_lookup/location.rb, line 28
def method_missing(method_sym, *arguments, &block)
  if has_property?(method_sym)
   data[method_sym.to_s]
  else
   super
  end
end
respond_to?(method_sym, include_private = false) click to toggle source
Calls superclass method
# File lib/dc_address_lookup/location.rb, line 36
def respond_to?(method_sym, include_private = false)
  if has_property?(method_sym)
    true
  else
    super
  end
end
valid?() click to toggle source
# File lib/dc_address_lookup/location.rb, line 24
def valid?
  !(data.empty?)
end

Private Instance Methods

has_property?(property) click to toggle source
# File lib/dc_address_lookup/location.rb, line 50
def has_property?(property)
  data.keys.include?(property.to_s)
end