Sha256: 7fb34a37f6860cfcfda879d6237f925df412be1ef5d87a2c39f3de56e4c7a105

Contents?: true

Size: 1.38 KB

Versions: 10

Compression:

Stored size: 1.38 KB

Contents

module Pay
  module Stripe
    module Subscription
      def stripe?
        processor == "stripe"
      end

      def stripe_cancel
        subscription = processor_subscription
        subscription.cancel_at_period_end = true
        subscription.save

        new_ends_at  = on_trial? ? trial_ends_at : Time.at(subscription.current_period_end)
        update(ends_at: new_ends_at)
      rescue ::Stripe::StripeError => e
        raise Error, e.message
      end

      def stripe_cancel_now!
        subscription = processor_subscription.delete
        update(ends_at: Time.zone.now)
      rescue ::Stripe::StripeError => e
        raise Error, e.message
      end

      def stripe_resume
        subscription = processor_subscription
        subscription.plan = processor_plan
        subscription.trial_end = on_trial? ? trial_ends_at.to_i : 'now'
        subscription.cancel_at_period_end = false
        subscription.save
      rescue ::Stripe::StripeError => e
        raise Error, e.message
      end

      def stripe_swap(plan)
        subscription = processor_subscription
        subscription.plan = plan
        subscription.prorate = prorate
        subscription.trial_end = on_trial? ? trial_ends_at.to_i : 'now'
        subscription.quantity = quantity if quantity?
        subscription.save
      rescue ::Stripe::StripeError => e
        raise Error, e.message
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
pay-1.0.2 lib/pay/stripe/subscription.rb
pay-1.0.1 lib/pay/stripe/subscription.rb
pay-1.0.0 lib/pay/stripe/subscription.rb
pay-1.0.0.rc3 lib/pay/stripe/subscription.rb
pay-1.0.0.rc2 lib/pay/stripe/subscription.rb
pay-1.0.0.rc1 lib/pay/stripe/subscription.rb
pay-1.0.0.beta5 lib/pay/stripe/subscription.rb
pay-1.0.0.beta4 lib/pay/stripe/subscription.rb
pay-1.0.0.beta3 lib/pay/stripe/subscription.rb
pay-1.0.0.beta2 lib/pay/stripe/subscription.rb