Sha256: b08fe7ab44a23e511d572bca5a713f0199cd92d8f834ea23a9e987c968e377eb
Contents?: true
Size: 1.9 KB
Versions: 2
Compression:
Stored size: 1.9 KB
Contents
class Address < ActiveRecord::Base attr_accessible :address1, :address2, :city, :state, :zip, :country belongs_to :person validates :person_id, :presence => true def address "#{address1} #{address2}" end def to_s "#{address1} #{address2} #{city} #{state} #{zip} #{country}" end def is_same_as(addr) return address1.eql?(addr.address1) && address2.eql?(addr.address2) && city.eql?(addr.city) && state.eql?(addr.state) && zip.eql?(addr.zip) && country.eql?(addr.country) end def self.from_payment(payment) if payment.respond_to? "billing_address" billing_address = payment.billing_address new({ :address1 => billing_address.street_address1, :address2 => billing_address.street_address2, :city => billing_address.city, :state => billing_address.state, :zip => billing_address.postal_code, :country => billing_address.country }) else nil end end def self.unhash(address) (address.is_a? Hash) ? Address.new(address) : address end def self.find_or_create(pers_id) #refactor to first_or_initialize when Rails 3.2 where(:person_id => pers_id).first || Address.create(:person_id => pers_id) end def update_with_note(person, user, address, time_zone, updated_by) old_addr = to_s() unless is_same_as(address) ["address1", "address2", "city", "state", "zip", "country"].each do |field| self.send("#{field}=", address.send(field)) end if save extra = updated_by.nil? ? "" : " from #{updated_by}" note = person.notes.create({ :occurred_at => DateTime.now.in_time_zone(time_zone), :text => "address updated#{extra}, old address was: (#{old_addr})" }) note.user = user else return false end end true end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
artfully_ose-1.0.0.rc4 | app/models/address.rb |
artfully_ose-1.0.0.rc3 | app/models/address.rb |