Sha256: 0dbed30ba9e0726a48b740fef505dcfb1e58b8cd287d2a15f7180edbddf33967

Contents?: true

Size: 1.22 KB

Versions: 13

Compression:

Stored size: 1.22 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

require 'set'

DependencyDetection.defer do
  @name = :merb_controller

  depends_on do
    defined?(Merb) && defined?(Merb::Controller)
  end

  executes do
    ::NewRelic::Agent.logger.info 'Installing Merb Controller instrumentation'
  end

  executes do
    require 'merb-core/controller/merb_controller'

    Merb::Controller.class_eval do
      include NewRelic::Agent::Instrumentation::ControllerInstrumentation

      class_inheritable_accessor :do_not_trace
      class_inheritable_accessor :ignore_apdex

      def self.newrelic_write_attr(attr_name, value) # :nodoc:
        self.send "#{attr_name}=", attr_name, value
      end

      def self.newrelic_read_attr(attr_name) # :nodoc:
        self.send attr_name
      end

      # determine the path that is used in the metric name for
      # the called controller action
      def newrelic_metric_path
        "#{controller_name}/#{action_name}"
      end

      protected

      alias_method :perform_action_without_newrelic_trace, :_dispatch
      alias_method :_dispatch, :perform_action_with_newrelic_trace
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
newrelic_rpm-3.9.1.236 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.9.0.229 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.8.1.221 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.8.0.218 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.3.204 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.3.199 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.2.195 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.2.192 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.2.190.beta lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.1.188 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.1.182 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.1.180 lib/new_relic/agent/instrumentation/merb/controller.rb
newrelic_rpm-3.7.0.177 lib/new_relic/agent/instrumentation/merb/controller.rb