Sha256: abedb721d703aa07973e9325b9b24d60bf613bc69df16a65b7f8d89b5ba8585f

Contents?: true

Size: 1.49 KB

Versions: 20

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

module AppMap
  # Railtie connects the AppMap recorder to Rails-specific features.
  class Railtie < ::Rails::Railtie
    initializer 'appmap.remote_recording' do
      # Indicate early in the log when these methods are enabled.
      %i[remote requests].each do |recording_method|
        AppMap.recording_enabled?(recording_method)
      end

      require 'appmap/middleware/remote_recording'
      Rails.application.config.middleware.insert_before \
        ActionDispatch::Executor,
        AppMap::Middleware::RemoteRecording
    end

    # appmap.subscribe subscribes to ActiveSupport Notifications so that they can be recorded as
    # AppMap events.
    initializer 'appmap.subscribe' do |_| # params: app
      require 'appmap/handler/rails/sql_handler'
      require 'appmap/handler/rails/request_handler'
      ActiveSupport::Notifications.subscribe 'sql.sequel', AppMap::Handler::Rails::SQLHandler.new
      ActiveSupport::Notifications.subscribe 'sql.active_record', AppMap::Handler::Rails::SQLHandler.new

      http_hook_available = ActionController::Instrumentation.public_instance_methods.include?(:process_action)
      if http_hook_available
        AppMap::Handler::Rails::RequestHandler::HookMethod.new.activate
      else
        ActiveSupport::Notifications.subscribe(
          'start_processing.action_controller',
          AppMap::Handler::Rails::RequestHandler::RequestListener.method(:begin_request)
        )
      end
    end
  end
end if AppMap.recording_enabled?

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
appmap-0.99.2 lib/appmap/railtie.rb
appmap-0.99.1 lib/appmap/railtie.rb
appmap-0.99.0 lib/appmap/railtie.rb
appmap-0.98.1 lib/appmap/railtie.rb
appmap-0.98.0 lib/appmap/railtie.rb
appmap-0.97.0 lib/appmap/railtie.rb
appmap-0.96.0 lib/appmap/railtie.rb
appmap-0.95.2 lib/appmap/railtie.rb
appmap-0.95.1 lib/appmap/railtie.rb
appmap-0.95.0 lib/appmap/railtie.rb
appmap-0.94.1 lib/appmap/railtie.rb
appmap-0.94.0 lib/appmap/railtie.rb
appmap-0.93.5 lib/appmap/railtie.rb
appmap-0.93.4 lib/appmap/railtie.rb
appmap-0.93.3 lib/appmap/railtie.rb
appmap-0.93.2 lib/appmap/railtie.rb
appmap-0.93.1 lib/appmap/railtie.rb
appmap-0.93.0 lib/appmap/railtie.rb
appmap-0.92.1 lib/appmap/railtie.rb
appmap-0.92.0 lib/appmap/railtie.rb