Slide 107
Slide 107 text
Chargify
require 'chargify_api_ares'
class Subscription < PaymentProcessor
include ActiveModel::Dirty
include ActiveModel::Validations
define_attribute_methods [:first_name, :last_name, :email, :card_number, :expiration_month, :expiration_year, :plan]
validates_presence_of :first_name, :last_name, :email, :plan
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
validates_inclusion_of :expiration_month, :in => 1..12, :allow_nil => true, :message => "is not a valid month."
validates_numericality_of :expiration_year, :only_integer => true, :allow_nil => true, :message => "is not a valid year."
def save_customer!
begin
customer = Chargify::Customer.find_by_reference @reference
rescue ActiveResource::ResourceNotFound
customer = Chargify::Customer.new( :reference => @reference )
end
customer.first_name = @first_name
customer.last_name = @last_name
customer.email = @email
customer.save!
end
end
Sunday, January 29, 12