Sha256: ffc507ee11428ee4dede55a2b14083ebcd7bd33c4f54863d9aeee7b6633a7d96

Contents?: true

Size: 1.58 KB

Versions: 48

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

require 'middleware/metrics_middleware'
require 'middleware/request_id_middleware'
require 'middleware/json_parse_errors'

module ZuoraConnect
  class Railtie < Rails::Railtie
    config.before_initialize do
      version = Rails.version
      if version >= "5.0.0"
        ::Rails.configuration.public_file_server.enabled = true
      elsif version >= "4.2.0"
        ::Rails.configuration.serve_static_files = true
      else
        ::Rails.configuration.serve_static_assets = true
      end
      ::Rails.configuration.action_dispatch.x_sendfile_header = nil
    end

    initializer "zuora_connect.configure_rails_initialization" do |app|
      app.middleware.insert_after Rack::Sendfile, ZuoraConnect::Middleware::Hallway
      app.middleware.insert_after ZuoraConnect::Middleware::Hallway, ZuoraConnect::MetricsMiddleware
      app.middleware.insert_after ActionDispatch::RequestId, ZuoraConnect::RequestIdMiddleware
      app.config.middleware.use ZuoraConnect::JsonParseErrors
    end

    if defined? Prometheus
      require 'rack'
      require 'prometheus/middleware/exporter'
      initializer "prometheus.configure_rails_initialization" do |app|
        app.middleware.insert_after ZuoraConnect::MetricsMiddleware, Prometheus::Middleware::Exporter, path: '/connect/internal/metrics'
        app.config.middleware.use Rack::Deflater, if: ->(env, *) { env['PATH_INFO'] == '/connect/internal/metrics' }
      end
    end

    # hook to process_action
    ActiveSupport::Notifications.subscribe('process_action.action_controller', ZuoraConnect::PageRequest.new)
  end
end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
zuora_connect-3.2.11 lib/zuora_connect/railtie.rb
zuora_connect-3.2.10 lib/zuora_connect/railtie.rb
zuora_connect-3.2.9 lib/zuora_connect/railtie.rb
zuora_connect-3.2.8 lib/zuora_connect/railtie.rb
zuora_connect-3.2.7 lib/zuora_connect/railtie.rb
zuora_connect-3.2.6 lib/zuora_connect/railtie.rb
zuora_connect-3.2.5 lib/zuora_connect/railtie.rb
zuora_connect-3.2.4 lib/zuora_connect/railtie.rb
zuora_connect-3.2.3 lib/zuora_connect/railtie.rb
zuora_connect-3.2.2 lib/zuora_connect/railtie.rb
zuora_connect-3.2.0 lib/zuora_connect/railtie.rb
zuora_connect-3.1.5.pre.g lib/zuora_connect/railtie.rb
zuora_connect-3.1.5.pre.f lib/zuora_connect/railtie.rb
zuora_connect-3.1.5.pre.e lib/zuora_connect/railtie.rb
zuora_connect-3.1.5.pre.d lib/zuora_connect/railtie.rb
zuora_connect-3.1.5.pre.c lib/zuora_connect/railtie.rb
zuora_connect-3.1.5.pre.b lib/zuora_connect/railtie.rb
zuora_connect-3.1.5.pre.a lib/zuora_connect/railtie.rb
zuora_connect-3.1.5 lib/zuora_connect/railtie.rb
zuora_connect-3.1.4 lib/zuora_connect/railtie.rb