Module: Datadog::RailsRendererPatcher
- Defined in:
- lib/ddtrace/contrib/rails/core_extensions.rb
Overview
RailsRendererPatcher contains function to patch Rails rendering libraries.
Class Method Summary collapse
- .patch_renderer ⇒ Object
- .patch_renderer_render_partial ⇒ Object
- .patch_renderer_render_template ⇒ Object
Class Method Details
.patch_renderer ⇒ Object
6 7 8 9 |
# File 'lib/ddtrace/contrib/rails/core_extensions.rb', line 6 def patch_renderer patch_renderer_render_template patch_renderer_render_partial end |
.patch_renderer_render_partial ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/ddtrace/contrib/rails/core_extensions.rb', line 31 def patch_renderer_render_partial if defined?(::ActionView::PartialRenderer) ::ActionView::PartialRenderer.class_eval do alias_method :render_partial_without_datadog, :render_partial def render_partial(*args, &block) ActiveSupport::Notifications.instrument('start_render_partial.action_view') render_partial_without_datadog(*args, &block) end end else # Rails < 3.1 ::ActionView::Partials::PartialRenderer.class_eval do alias_method :render_partial_without_datadog, :render def render(*args, &block) ActiveSupport::Notifications.instrument('start_render_partial.action_view') render_partial_without_datadog(*args, &block) end end end end |
.patch_renderer_render_template ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/ddtrace/contrib/rails/core_extensions.rb', line 11 def patch_renderer_render_template if defined?(::ActionView::Renderer) ::ActionView::Renderer.class_eval do alias_method :render_template_without_datadog, :render_template def render_template(*args, &block) ActiveSupport::Notifications.instrument('start_render_template.action_view') render_template_without_datadog(*args, &block) end end else # Rails < 3.1 ::ActionView::Template.class_eval do alias_method :render_template_without_datadog, :render def render(*args, &block) ActiveSupport::Notifications.instrument('start_render_template.action_view') render_template_without_datadog(*args, &block) end end end end |