Sha256: 067a426ed780ae2f742ee1cc63a01613c588a100636e7ff526552f2fd8982efa

Contents?: true

Size: 983 Bytes

Versions: 6

Compression:

Stored size: 983 Bytes

Contents

require 'ddtrace/contrib/patcher'
require 'ddtrace/contrib/action_pack/action_controller/instrumentation'

module Datadog
  module Contrib
    module ActionPack
      module ActionController
        # Patcher for ActionController components
        module Patcher
          include Contrib::Patcher

          module_function

          def patched?
            done?(:action_controller)
          end

          def patch
            do_once(:action_controller) do
              begin
                patch_action_controller_metal
              rescue StandardError => e
                Datadog::Tracer.log.error("Unable to apply ActionController integration: #{e}")
              end
            end
          end

          def patch_action_controller_metal
            do_once(:patch_action_controller_metal) do
              ::ActionController::Metal.send(:prepend, ActionController::Instrumentation::Metal)
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
ls-trace-0.1.2 lib/ddtrace/contrib/action_pack/action_controller/patcher.rb
ddtrace-0.29.1 lib/ddtrace/contrib/action_pack/action_controller/patcher.rb
ls-trace-0.1.1 lib/ddtrace/contrib/action_pack/action_controller/patcher.rb
ddtrace-0.29.0 lib/ddtrace/contrib/action_pack/action_controller/patcher.rb
ddtrace-0.28.0 lib/ddtrace/contrib/action_pack/action_controller/patcher.rb
ddtrace-0.27.0 lib/ddtrace/contrib/action_pack/action_controller/patcher.rb