Module: RedLine::Customer::InstanceMethods

Defined in:
lib/redline/customer/instance.rb

Instance Method Summary collapse

Instance Method Details

#braintree_customer_attributesObject



4
5
6
7
8
9
# File 'lib/redline/customer/instance.rb', line 4

def braintree_customer_attributes
	wanted_attributes = Braintree::Customer._create_signature.reject{|a| a.is_a? Hash}.reject{|a| a == :id}
	wanted_attributes.inject({}) {|hash, key| hash.merge(key => (self.send(self.class.braintree_customer_attribute_map[key] || key) rescue nil))}.
		merge(:custom_fields => self.class.braintree_customer_custom_fields.inject({}) {|hash, key| hash.merge(key => (self.send(self.class.braintree_customer_attribute_map[key] || key) rescue nil))}).
			reject { |key, value| value == {}}
end

#create_customerObject



13
14
15
# File 'lib/redline/customer/instance.rb', line 13

def create_customer
	self.customer_id ||= Braintree::Customer.create!(braintree_customer_attributes).id
end

#customerObject



10
11
12
# File 'lib/redline/customer/instance.rb', line 10

def customer
	Braintree::Customer.find(customer_id) if customer_id
end

#delete_customerObject



19
20
21
22
23
24
# File 'lib/redline/customer/instance.rb', line 19

def delete_customer
	if customer_id
		Braintree::Customer.delete(customer_id)
		self.customer_id = nil
	end
end

#update_customerObject



16
17
18
# File 'lib/redline/customer/instance.rb', line 16

def update_customer
	Braintree::Customer.update!(customer_id, braintree_customer_attributes) && flush_cache(:customer) if customer_id
end