Class: BraintreeRails::CreditCard

Inherits:
Object
  • Object
show all
Includes:
Model
Defined in:
lib/braintree_rails/credit_card.rb

Instance Method Summary collapse

Methods included from Model

included

Instance Method Details

#add_errors(validation_errors) ⇒ Object



47
48
49
50
# File 'lib/braintree_rails/credit_card.rb', line 47

def add_errors(validation_errors)
  billing_address.add_errors(extract_errors(validation_errors)) if billing_address
  super(validation_errors)
end

#attributes_for(action) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/braintree_rails/credit_card.rb', line 52

def attributes_for(action)
  super.tap do |attributes|
    if attributes[:billing_address] && action == :update
      attributes[:billing_address].merge!(:options => {:update_existing => true})
    end
  end
end

#clear_encryped_attributesObject



60
61
62
63
64
65
66
67
# File 'lib/braintree_rails/credit_card.rb', line 60

def clear_encryped_attributes
  yield if block_given?
ensure
  return unless Configuration.mode == Configuration::Mode::JS
  [:number=, :cvv=].each do |encrypted_attribute|
    self.send(encrypted_attribute, nil)
  end
end

#default?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/braintree_rails/credit_card.rb', line 39

def default?
  default
end

#ensure_model(model) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/braintree_rails/credit_card.rb', line 25

def ensure_model(model)
  if Braintree::Transaction::CreditCardDetails === model
    assign_attributes(extract_values(model))
    self.persisted = model.id.present?
    model
  else
    super
  end
end

#expired?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/braintree_rails/credit_card.rb', line 35

def expired?
  expired
end

#expiry_date_changed?Boolean

Returns:

  • (Boolean)


74
75
76
# File 'lib/braintree_rails/credit_card.rb', line 74

def expiry_date_changed?
  changed.include?(:expiration_month) || changed.include?(:expiration_year)
end

#masked_numberObject



43
44
45
# File 'lib/braintree_rails/credit_card.rb', line 43

def masked_number
  "#{bin}******#{last_4}"
end

#normalize_expiration_dateObject



69
70
71
72
# File 'lib/braintree_rails/credit_card.rb', line 69

def normalize_expiration_date
  self.expiration_date = [self.expiration_month, self.expiration_year].join("/")
  self.expiration_month = self.expiration_year = nil
end