AgileVentures/MetPlus_PETS

View on GitHub
app/models/address.rb

Summary

Maintainability
A
2 hrs
Test Coverage
class Address < ActiveRecord::Base
  belongs_to :location, polymorphic: true
  has_many :company_people
  validates_presence_of :street
  validates_presence_of :city
  validates_presence_of :state
  validates_format_of :zipcode, 
    with: /\A\d{5}-\d{4}|\A\d{5}\z/,
    message: 'should be in form of 12345 or 12345-1234',
    allow_blank: true

  def full_address
      "#{street} #{city}, #{state} #{zipcode}"
  end
  
  def self.us_states
    [
    ['Alabama', 'AL'],
    ['Alaska', 'AK'],
    ['Arizona', 'AZ'],
    ['Arkansas', 'AR'],
    ['California', 'CA'],
    ['Colorado', 'CO'],
    ['Connecticut', 'CT'],
    ['Delaware', 'DE'],
    ['District of Columbia', 'DC'],
    ['Florida', 'FL'],
    ['Georgia', 'GA'],
    ['Hawaii', 'HI'],
    ['Idaho', 'ID'],
    ['Illinois', 'IL'],
    ['Indiana', 'IN'],
    ['Iowa', 'IA'],
    ['Kansas', 'KS'],
    ['Kentucky', 'KY'],
    ['Louisiana', 'LA'],
    ['Maine', 'ME'],
    ['Maryland', 'MD'],
    ['Massachusetts', 'MA'],
    ['Michigan', 'MI'],
    ['Minnesota', 'MN'],
    ['Mississippi', 'MS'],
    ['Missouri', 'MO'],
    ['Montana', 'MT'],
    ['Nebraska', 'NE'],
    ['Nevada', 'NV'],
    ['New Hampshire', 'NH'],
    ['New Jersey', 'NJ'],
    ['New Mexico', 'NM'],
    ['New York', 'NY'],
    ['North Carolina', 'NC'],
    ['North Dakota', 'ND'],
    ['Ohio', 'OH'],
    ['Oklahoma', 'OK'],
    ['Oregon', 'OR'],
    ['Pennsylvania', 'PA'],
    ['Puerto Rico', 'PR'],
    ['Rhode Island', 'RI'],
    ['South Carolina', 'SC'],
    ['South Dakota', 'SD'],
    ['Tennessee', 'TN'],
    ['Texas', 'TX'],
    ['Utah', 'UT'],
    ['Vermont', 'VT'],
    ['Virginia', 'VA'],
    ['Washington', 'WA'],
    ['West Virginia', 'WV'],
    ['Wisconsin', 'WI'],
    ['Wyoming', 'WY']
    ]
  end
  def self.states_full_name
    names = []
    self.us_states.each do |full_name, small_name|
      names << full_name
    end
    names
  end
  def self.states_small_name
    names = []
    self.us_states.each do |full_name, small_name|
      names << small_name
    end
    names
  end 
end