class ScoutApm::Instruments::ActionView
Attributes
context[R]
Public Class Methods
new(context)
click to toggle source
# File lib/scout_apm/instruments/action_view.rb, line 15 def initialize(context) @context = context @installed = false end
Public Instance Methods
install()
click to toggle source
# File lib/scout_apm/instruments/action_view.rb, line 32 def install return unless defined?(::ActionView) && defined?(::ActionView::PartialRenderer) if prependable? install_using_prepend else install_using_tracer end @installed = true end
install_using_prepend()
click to toggle source
# File lib/scout_apm/instruments/action_view.rb, line 69 def install_using_prepend logger.info "Instrumenting ActionView::PartialRenderer" ::ActionView::PartialRenderer.prepend(ActionViewPartialRendererInstruments) logger.info "Instrumenting ActionView::TemplateRenderer" ::ActionView::TemplateRenderer.prepend(ActionViewTemplateRendererInstruments) end
install_using_tracer()
click to toggle source
# File lib/scout_apm/instruments/action_view.rb, line 43 def install_using_tracer logger.info "Instrumenting ActionView::PartialRenderer" ::ActionView::PartialRenderer.class_eval do include ScoutApm::Tracer instrument_method :render_partial, :type => "View", :name => '#{@template.virtual_path rescue "Unknown Partial"}/Rendering', :scope => true instrument_method :collection_with_template, :type => "View", :name => '#{@template.virtual_path rescue "Unknown Collection"}/Rendering', :scope => true end logger.info "Instrumenting ActionView::TemplateRenderer" ::ActionView::TemplateRenderer.class_eval do include ScoutApm::Tracer instrument_method :render_template, :type => "View", :name => '#{args[0].virtual_path rescue "Unknown"}/Rendering', :scope => true end end
installed?()
click to toggle source
# File lib/scout_apm/instruments/action_view.rb, line 24 def installed? @installed end
logger()
click to toggle source
# File lib/scout_apm/instruments/action_view.rb, line 20 def logger context.logger end
prependable?()
click to toggle source
# File lib/scout_apm/instruments/action_view.rb, line 28 def prependable? context.environment.supports_module_prepend? end