lib/pay/billable.rb in pay-2.3.1 vs lib/pay/billable.rb in pay-2.4.0
- old
+ new
@@ -34,11 +34,11 @@
self.processor_id = nil if processor_changed?
end
def customer
check_for_processor
- raise Pay::Error, "Email is required to create a customer" if email.nil?
+ raise Pay::Error, I18n.t("errors.email_required") if email.nil?
customer = send("#{processor}_customer")
update_card(card_token) if card_token.present?
customer
end
@@ -50,22 +50,22 @@
def charge(amount_in_cents, options = {})
check_for_processor
send("create_#{processor}_charge", amount_in_cents, options)
end
- def subscribe(name: "default", plan: "default", **options)
+ def subscribe(name: Pay.default_product_name, plan: Pay.default_plan_name, **options)
check_for_processor
send("create_#{processor}_subscription", name, plan, options)
end
def update_card(token)
check_for_processor
customer if processor_id.nil?
send("update_#{processor}_card", token)
end
- def on_trial?(name: "default", plan: nil)
+ def on_trial?(name: Pay.default_product_name, plan: nil)
return true if default_generic_trial?(name, plan)
sub = subscription(name: name)
return sub&.on_trial? if plan.nil?
@@ -79,26 +79,26 @@
def processor_subscription(subscription_id, options = {})
check_for_processor
send("#{processor}_subscription", subscription_id, options)
end
- def subscribed?(name: "default", processor_plan: nil)
+ def subscribed?(name: Pay.default_product_name, processor_plan: nil)
subscription = subscription(name: name)
return false if subscription.nil?
return subscription.active? if processor_plan.nil?
subscription.active? && subscription.processor_plan == processor_plan
end
- def on_trial_or_subscribed?(name: "default", processor_plan: nil)
+ def on_trial_or_subscribed?(name: Pay.default_product_name, processor_plan: nil)
on_trial?(name: name, plan: processor_plan) ||
subscribed?(name: name, processor_plan: processor_plan)
end
- def subscription(name: "default")
- subscriptions.for_name(name).last
+ def subscription(name: Pay.default_product_name)
+ subscriptions.loaded? ? subscriptions.reverse.detect { |s| s.name == name } : subscriptions.for_name(name).last
end
def invoice!(options = {})
send("#{processor}_invoice!", options)
end
@@ -121,17 +121,17 @@
def paddle?
processor == "paddle"
end
- def has_incomplete_payment?(name: "default")
+ def has_incomplete_payment?(name: Pay.default_product_name)
subscription(name: name)&.has_incomplete_payment?
end
private
def check_for_processor
- raise StandardError, "No payment processor selected. Make sure to set the #{self.class.name}'s `processor` attribute to either 'stripe' or 'braintree'." unless processor
+ raise StandardError, I18n.t("errors.no_processor", class_name: self.class.name) unless processor
end
# Used for creating a Pay::Subscription in the database
def create_subscription(subscription, processor, name, plan, options = {})
options[:quantity] ||= 1