class Pay::FakeProcessor::Subscription

Attributes

pay_subscription[R]

Public Class Methods

new(pay_subscription) click to toggle source
# File lib/pay/fake_processor/subscription.rb, line 18
def initialize(pay_subscription)
  @pay_subscription = pay_subscription
end

Public Instance Methods

cancel() click to toggle source

With trial, sets end to trial end (mimicing Stripe) Without trial, sets can ends_at to end of month

# File lib/pay/fake_processor/subscription.rb, line 28
def cancel
  if pay_subscription.on_trial?
    pay_subscription.update(ends_at: pay_subscription.trial_ends_at)
  else
    pay_subscription.update(ends_at: Time.current.end_of_month)
  end
end
cancel_now!() click to toggle source
# File lib/pay/fake_processor/subscription.rb, line 36
def cancel_now!
  pay_subscription.update(ends_at: Time.current, status: :canceled)
end
on_grace_period?() click to toggle source
# File lib/pay/fake_processor/subscription.rb, line 40
def on_grace_period?
  canceled? && Time.current < ends_at
end
pause() click to toggle source
# File lib/pay/fake_processor/subscription.rb, line 48
def pause
  pay_subscription.update(status: :paused, trial_ends_at: Time.current)
end
paused?() click to toggle source
# File lib/pay/fake_processor/subscription.rb, line 44
def paused?
  pay_subscription.status == "paused"
end
resume() click to toggle source
# File lib/pay/fake_processor/subscription.rb, line 52
def resume
  unless on_grace_period? || paused?
    raise StandardError, "You can only resume subscriptions within their grace period."
  end
end
subscription(**options) click to toggle source
# File lib/pay/fake_processor/subscription.rb, line 22
def subscription(**options)
  pay_subscription
end
swap(plan) click to toggle source
# File lib/pay/fake_processor/subscription.rb, line 58
def swap(plan)
end