Class: Spree::Address
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Spree::Address
- Defined in:
- app/models/spree/address.rb
Class Method Summary collapse
Instance Method Summary collapse
- #==(other_address) ⇒ Object
-
#active_merchant_hash ⇒ Object
Generates an ActiveMerchant compatible address hash.
- #clone ⇒ Object
- #empty? ⇒ Boolean
-
#full_name ⇒ Object
Can modify an address if it’s not been used in an order (but checkouts controller has finer control) def editable? new_record? || (shipments.empty? && checkouts.empty?) end.
- #same_as?(other) ⇒ Boolean (also: #same_as)
- #state_text ⇒ Object
- #to_s ⇒ Object
Class Method Details
Instance Method Details
#==(other_address) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'app/models/spree/address.rb', line 50 def ==(other_address) self_attrs = self.attributes other_attrs = other_address.respond_to?(:attributes) ? other_address.attributes : {} [self_attrs, other_attrs].each { |attrs| attrs.except!('id', 'created_at', 'updated_at', 'order_id') } self_attrs == other_attrs end |
#active_merchant_hash ⇒ Object
Generates an ActiveMerchant compatible address hash
64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'app/models/spree/address.rb', line 64 def active_merchant_hash { name: full_name, address1: address1, address2: address2, city: city, state: state_text, zip: zipcode, country: country.try(:iso), phone: phone } end |
#clone ⇒ Object
46 47 48 |
# File 'app/models/spree/address.rb', line 46 def clone self.class.new(self.attributes.except('id', 'updated_at', 'created_at')) end |
#empty? ⇒ Boolean
59 60 61 |
# File 'app/models/spree/address.rb', line 59 def empty? attributes.except('id', 'created_at', 'updated_at', 'order_id', 'country_id').all? { |_, v| v.nil? } end |
#full_name ⇒ Object
Can modify an address if it’s not been used in an order (but checkouts controller has finer control) def editable?
new_record? || (shipments.empty? && checkouts.empty?)
end
27 28 29 |
# File 'app/models/spree/address.rb', line 27 def full_name "#{firstname} #{lastname}".strip end |
#same_as?(other) ⇒ Boolean Also known as: same_as
35 36 37 38 |
# File 'app/models/spree/address.rb', line 35 def same_as?(other) return false if other.nil? attributes.except('id', 'updated_at', 'created_at') == other.attributes.except('id', 'updated_at', 'created_at') end |
#state_text ⇒ Object
31 32 33 |
# File 'app/models/spree/address.rb', line 31 def state_text state.try(:abbr) || state.try(:name) || state_name end |
#to_s ⇒ Object
42 43 44 |
# File 'app/models/spree/address.rb', line 42 def to_s "#{full_name}: #{address1}" end |