Sha256: f1c6456d53fa4634b4fd01d58159bea9882ce43d3f9e0d31c2f367f416f96b98

Contents?: true

Size: 1.52 KB

Versions: 5

Compression:

Stored size: 1.52 KB

Contents

require_relative 'configuration'

module StripeSaas
  class Engine < ::Rails::Engine
    isolate_namespace StripeSaas

    config.generators do |g|
      g.test_framework :rspec
    end

    initializer 'stripe_saas.action_controller' do |app|
      ActiveSupport.on_load :action_controller do
        helper StripeSaas::ApplicationHelper
      end
    end

    initializer 'stripe_saas.create_plans' do |app|
      if StripeSaas.create_plans_in_stripe? && !Rails.env.test?
        begin
          ::Plan.all.each do |plan|
            unless StripeSaas.non_stripe_plans.include?(plan.stripe_id)
              begin
                stripe_plan = Stripe::Plan.retrieve(plan.stripe_id)
              rescue Stripe::InvalidRequestError => ire
                if ire.message == "No such plan: #{plan.stripe_id}"
                  Stripe::Plan.create(
                    id: plan.stripe_id,
                    name: plan.name,
                    amount: plan.price_cents,
                    interval: plan.interval,
                    interval_count: plan.interval_count,
                    trial_period_days: plan.trial_period_days,
                    statement_descriptor: plan.statement_descriptor,
                    currency: 'usd',
                    metadata: plan.metadata_as_json
                  )
                end
              end
            end
          end
        rescue NameError, ActiveRecord::StatementInvalid
          # ignore: Plan model is not defined yet (migration might not have run)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
stripe_saas-0.0.9 lib/stripe_saas/engine.rb
stripe_saas-0.0.8 lib/stripe_saas/engine.rb
stripe_saas-0.0.7 lib/stripe_saas/engine.rb
stripe_saas-0.0.6 lib/stripe_saas/engine.rb
stripe_saas-0.0.5 lib/stripe_saas/engine.rb