Sha256: 7c665e7a8559b99e0e2baf09ad9ddabda63f4909b721b15dd467c4b929e12242

Contents?: true

Size: 782 Bytes

Versions: 2

Compression:

Stored size: 782 Bytes

Contents

module BraintreeRails
  class Transactions < SimpleDelegator
    include Association
    lazy_load Array.public_instance_methods - Object.public_instance_methods

    def initialize(customer, credit_card=nil)
      @customer = customer || Customer.new({})
      @credit_card = credit_card || @customer.credit_cards.find(&:default?)
      super([])
    end

    def default_options
      {:customer => @customer, :credit_card => @credit_card}
    end

    protected
    def load!
      @result ||= Braintree::Transaction.search do |search|
        search.customer_id.is @customer.id
        search.payment_method_token.is @credit_card.token if @credit_card && @credit_card.persisted?
      end.map {|t| BraintreeRails::Transaction.new(t)}
      __setobj__(@result)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

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