Class: Pay::FakeProcessor::Subscription
- Inherits:
-
Object
- Object
- Pay::FakeProcessor::Subscription
- Defined in:
- lib/pay/fake_processor/subscription.rb
Instance Attribute Summary collapse
-
#pay_subscription ⇒ Object
readonly
Returns the value of attribute pay_subscription.
Instance Method Summary collapse
- #cancel ⇒ Object
- #cancel_now! ⇒ Object
-
#initialize(pay_subscription) ⇒ Subscription
constructor
A new instance of Subscription.
- #on_grace_period? ⇒ Boolean
- #pause ⇒ Object
- #paused? ⇒ Boolean
- #resume ⇒ Object
- #subscription(**options) ⇒ Object
- #swap(plan) ⇒ Object
Constructor Details
#initialize(pay_subscription) ⇒ Subscription
Returns a new instance of Subscription.
18 19 20 |
# File 'lib/pay/fake_processor/subscription.rb', line 18 def initialize(pay_subscription) @pay_subscription = pay_subscription end |
Instance Attribute Details
#pay_subscription ⇒ Object (readonly)
Returns the value of attribute pay_subscription.
4 5 6 |
# File 'lib/pay/fake_processor/subscription.rb', line 4 def pay_subscription @pay_subscription end |
Instance Method Details
#cancel ⇒ Object
26 27 28 |
# File 'lib/pay/fake_processor/subscription.rb', line 26 def cancel pay_subscription.update(ends_at: Time.current.end_of_month) end |
#cancel_now! ⇒ Object
30 31 32 |
# File 'lib/pay/fake_processor/subscription.rb', line 30 def cancel_now! pay_subscription.update(ends_at: Time.current, status: :canceled) end |
#on_grace_period? ⇒ Boolean
34 35 36 |
# File 'lib/pay/fake_processor/subscription.rb', line 34 def on_grace_period? canceled? && Time.zone.now < ends_at end |
#pause ⇒ Object
42 43 44 |
# File 'lib/pay/fake_processor/subscription.rb', line 42 def pause raise NotImplementedError, "FakeProcessor does not support pausing subscriptions" end |
#paused? ⇒ Boolean
38 39 40 |
# File 'lib/pay/fake_processor/subscription.rb', line 38 def paused? false end |
#resume ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/pay/fake_processor/subscription.rb', line 46 def resume unless on_grace_period? raise StandardError, "You can only resume subscriptions within their grace period." end pay_subscription.update(ends_at: nil, status: :active) end |
#subscription(**options) ⇒ Object
22 23 24 |
# File 'lib/pay/fake_processor/subscription.rb', line 22 def subscription(**) pay_subscription end |
#swap(plan) ⇒ Object
54 55 56 |
# File 'lib/pay/fake_processor/subscription.rb', line 54 def swap(plan) pay_subscription.update(processor_plan: plan) end |