Sha256: 5aa6ba0256eafeb96ac7a94e36b684d755c0b4c146371a4a4acfb505369db261

Contents?: true

Size: 1.33 KB

Versions: 12

Compression:

Stored size: 1.33 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

    initializer "pay.webhooks" 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

12 entries across 12 versions & 1 rubygems

Version Path
pay-5.0.3 lib/pay/engine.rb
pay-5.0.2 lib/pay/engine.rb
pay-5.0.1 lib/pay/engine.rb
pay-5.0.0 lib/pay/engine.rb
pay-4.2.1 lib/pay/engine.rb
pay-4.2.0 lib/pay/engine.rb
pay-4.1.1 lib/pay/engine.rb
pay-4.1.0 lib/pay/engine.rb
pay-4.0.4 lib/pay/engine.rb
pay-4.0.2 lib/pay/engine.rb
pay-4.0.1 lib/pay/engine.rb
pay-4.0.0 lib/pay/engine.rb