Module: PaidUp::Mixins::Subscriber::InstanceMethods
- Defined in:
- lib/paid_up/mixins/subscriber.rb
Overview
Included by subscriber mixin
Instance Method Summary collapse
- #can_downgrade_to?(plan_to_check) ⇒ Boolean
- #can_upgrade_to?(plan_to_check) ⇒ Boolean
- #cards ⇒ Object
- #paid_up_subscription ⇒ Object
- #plan_stripe_id ⇒ Object
- #reload(*args, &blk) ⇒ Object
- #rolify_setting(table_name) ⇒ Object
- #stripe_data ⇒ Object
- #subscribe_to_free_plan ⇒ Object
- #subscribe_to_plan(new_plan, stripe_token = nil, coupon = nil, trial_end = nil) ⇒ Object
- #subscribed_to?(plan_to_check) ⇒ Boolean
- #table_setting(table_name) ⇒ Object
- #using_free_plan? ⇒ Boolean
Instance Method Details
#can_downgrade_to?(plan_to_check) ⇒ Boolean
84 85 86 87 88 89 |
# File 'lib/paid_up/mixins/subscriber.rb', line 84 def can_downgrade_to?(plan_to_check) plan.present? && ( !subscribed_to?(plan_to_check) && (plan_to_check.sort_order.to_i < plan.sort_order.to_i) ) end |
#can_upgrade_to?(plan_to_check) ⇒ Boolean
77 78 79 80 81 82 |
# File 'lib/paid_up/mixins/subscriber.rb', line 77 def can_upgrade_to?(plan_to_check) plan.nil? || ( !subscribed_to?(plan_to_check) && (plan_to_check.sort_order.to_i > plan.sort_order.to_i) ) end |
#cards ⇒ Object
35 36 37 |
# File 'lib/paid_up/mixins/subscriber.rb', line 35 def cards stripe_data.present? && stripe_data.sources.all(object: 'card') end |
#paid_up_subscription ⇒ Object
68 69 70 71 |
# File 'lib/paid_up/mixins/subscriber.rb', line 68 def paid_up_subscription stripe_data.nil? && subscribe_to_free_plan @subscription end |
#plan_stripe_id ⇒ Object
64 65 66 |
# File 'lib/paid_up/mixins/subscriber.rb', line 64 def plan_stripe_id paid_up_subscription&.stripe_data&.plan&.id end |
#reload(*args, &blk) ⇒ Object
25 26 27 28 29 |
# File 'lib/paid_up/mixins/subscriber.rb', line 25 def reload(*args, &blk) super(*args, &blk) load_stripe_data self end |
#rolify_setting(table_name) ⇒ Object
60 61 62 |
# File 'lib/paid_up/mixins/subscriber.rb', line 60 def rolify_setting(table_name) PaidUp::RolifyFeatureSettingType.new(name: table_name, user: self) end |
#stripe_data ⇒ Object
31 32 33 |
# File 'lib/paid_up/mixins/subscriber.rb', line 31 def stripe_data (stripe_id.present? || new_record?) && @customer_stripe_data end |
#subscribe_to_free_plan ⇒ Object
52 53 54 |
# File 'lib/paid_up/mixins/subscriber.rb', line 52 def subscribe_to_free_plan subscribe_to_plan PaidUp::Plan.free end |
#subscribe_to_plan(new_plan, stripe_token = nil, coupon = nil, trial_end = nil) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/paid_up/mixins/subscriber.rb', line 39 def subscribe_to_plan( new_plan, stripe_token = nil, coupon = nil, trial_end = nil ) # If there is an existing subscription if stripe_id.present? && paid_up_subscription.present? paid_up_subscription.update(new_plan, stripe_token, coupon, trial_end) else # Totally new subscription paid_up_subscription.create(new_plan, stripe_token, coupon, trial_end) end Rails.cache.delete("#{stripe_id}/stripe_data") reload end |
#subscribed_to?(plan_to_check) ⇒ Boolean
73 74 75 |
# File 'lib/paid_up/mixins/subscriber.rb', line 73 def subscribed_to?(plan_to_check) plan.present? && plan.id == plan_to_check.id end |
#table_setting(table_name) ⇒ Object
56 57 58 |
# File 'lib/paid_up/mixins/subscriber.rb', line 56 def table_setting(table_name) PaidUp::TableFeatureSettingType.new(name: table_name, user: self) end |
#using_free_plan? ⇒ Boolean
91 92 93 94 |
# File 'lib/paid_up/mixins/subscriber.rb', line 91 def using_free_plan? plan.nil? || stripe_data.delinquent || plan.stripe_id == PaidUp.configuration.free_plan_stripe_id end |