Sha256: f5463d617f00775e37b1507c9483faf3f81e0df1d2e48a5f15f433ce38f665ef

Contents?: true

Size: 1.5 KB

Versions: 18

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

module Pay
  class Engine < ::Rails::Engine
    engine_name "pay"

    initializer "pay.processors" do |app|
      if Pay.automount_routes
        app.routes.append do
          mount Pay::Engine, at: Pay.routes_path, as: "pay"
        end
      end

      # Include the pay attributes for ActiveRecord models
      ActiveSupport.on_load(:active_record) do
        include Pay::Attributes
      end
    end

    # Add webhook subscribers before app initializers define extras
    # This keeps the processing in order so that changes have happened before user-defined webhook processors
    config.before_initialize do
      Pay::Stripe.configure_webhooks if Pay::Stripe.enabled?
      Pay::Braintree.configure_webhooks if Pay::Braintree.enabled?
      Pay::Paddle.configure_webhooks if Pay::Paddle.enabled?
    end

    config.to_prepare do
      Pay::Stripe.setup if Pay::Stripe.enabled?
      Pay::Braintree.setup if Pay::Braintree.enabled?
      Pay::Paddle.setup if Pay::Paddle.enabled?

      if defined?(::Receipts::VERSION)
        if Pay::Engine.version_matches?(required: "~> 2", current: ::Receipts::VERSION)
          Pay::Charge.include Pay::Receipts
        else
          raise "[Pay] receipts gem must be version ~> 2"
        end
      end
    end

    # Determines if a gem version matches requirements
    # Used for verifying that dependencies are correct
    def version_matches?(current:, required:)
      Gem::Dependency.new("gem", required).match? "gem", current
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
pay-6.3.4 lib/pay/engine.rb
pay-6.3.3 lib/pay/engine.rb
pay-6.3.2 lib/pay/engine.rb
pay-6.3.1 lib/pay/engine.rb
pay-6.3.0 lib/pay/engine.rb
pay-6.2.4 lib/pay/engine.rb
pay-6.2.3 lib/pay/engine.rb
pay-6.2.2 lib/pay/engine.rb
pay-6.2.1 lib/pay/engine.rb
pay-6.2.0 lib/pay/engine.rb
pay-6.1.2 lib/pay/engine.rb
pay-6.1.1 lib/pay/engine.rb
pay-6.1.0 lib/pay/engine.rb
pay-6.0.3 lib/pay/engine.rb
pay-6.0.2 lib/pay/engine.rb
pay-6.0.1 lib/pay/engine.rb
pay-6.0.0 lib/pay/engine.rb
pay-5.0.4 lib/pay/engine.rb