Sha256: e6bb35c5bb9f7ff0105459a458e4dd1df7488aa1ca0d9c939819a730831d441c

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

module Rollbar
  module Js
    module Frameworks
      class Rails
        attr_accessor :prepared

        alias prepared? prepared

        def prepare
          return if prepared?

          if secure_headers?
            insert_middleware_after_secure_headers
          else
            insert_middleware
          end

          self.prepared = true
        end

        def insert_middleware_after_secure_headers
          instance = self

          Rollbar::Railtie.initializer 'rollbar.js.frameworks.rails', :after => 'secure_headers.middleware' do |_app|
            instance.insert_middleware
          end
        end

        def insert_middleware
          require 'rollbar/js/middleware'

          config = {
            :options => Rollbar.configuration.js_options,
            :enabled => Rollbar.configuration.js_enabled
          }
          rails_config.middleware.use(::Rollbar::Js::Middleware, config)
        end

        def secure_headers?
          defined?(::SecureHeaders)
        end

        def rails_config
          ::Rails.configuration
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rollbar-2.10.0 lib/rollbar/js/frameworks/rails.rb