Sha256: 29d1937cf1a70a8ee1176626e562d12883badb36656be538178eca2d4306ebce

Contents?: true

Size: 881 Bytes

Versions: 3

Compression:

Stored size: 881 Bytes

Contents

module BraintreeRails
  class Customer < SimpleDelegator
    include Model
    define_attributes(:id, :first_name, :last_name, :email, :company, :website, :phone, :fax, :created_at, :updated_at)

    validates :id, :format => {:with => /^[-_a-z0-9]*$/i}, :length => {:maximum => 36}, :exclusion => {:in => %w(all new)}
    validates :first_name, :last_name, :company, :website, :phone, :fax, :length => {:maximum => 255}

    attr_reader :addresses, :credit_cards

    def initialize(customer = {})
      customer = ensure_model(customer)
      @addresses = Addresses.new(self, customer.try(:addresses))
      @credit_cards = CreditCards.new(self, customer.try(:credit_cards))
      super(customer)
    end

    def full_name
      "#{first_name} #{last_name}".strip
    end

    def transactions
      new_record? ? [] : @transactions ||= Transactions.new(self)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
braintree-rails-0.4.3 lib/braintree_rails/customer.rb
braintree-rails-0.4.2 lib/braintree_rails/customer.rb
braintree-rails-0.4.1 lib/braintree_rails/customer.rb