module Wildsight::Rails
Public Class Methods
instrument()
click to toggle source
# File lib/wildsight/rails/railtie.rb, line 4 def self.instrument return if @instrumented @instrumented = true ::AbstractController::Base.class_eval do include Wildsight::Rails::ActionController alias_method :process_action_without_ws, :process_action def wildsight_context @_wildsight_context ||= Wildsight::Rack.detect_context(self.respond_to?(:request) ? request.env : {}) end def process_action(*args) context = Wildsight::Rack.detect_context(self.respond_to?(:request) ? request.env : {}) return process_action_without_ws(*args) unless context if respond_to?(:request) context.data[:rack][:request][:target] = self.class.name + '#' + request.params['action'] context.data[:rack][:request][:method] = request.method context.data[:rack][:request][:path] = request.original_fullpath context.data[:rack][:request][:params] = request.filtered_parameters context.data[:rack][:request][:session] = {id: request.session.id} context.data[:rack][:request][:url] = request.original_url context.data[:rack][:request][:remote] = request.remote_ip end result = context.profiler.duration(:action) { process_action_without_ws(*args) } return result rescue Exception => e raise e end end ::AbstractController::Rendering.class_eval do alias_method :render_without_ws, :render def render(*args, &block) context = Wildsight::Rack.detect_context(self.respond_to?(:request) ? request.env : {}) result = context.profiler.duration(:view) { render_without_ws(*args, &block) } return result end end end
Public Instance Methods
process_action(*args)
click to toggle source
# File lib/wildsight/rails/railtie.rb, line 19 def process_action(*args) context = Wildsight::Rack.detect_context(self.respond_to?(:request) ? request.env : {}) return process_action_without_ws(*args) unless context if respond_to?(:request) context.data[:rack][:request][:target] = self.class.name + '#' + request.params['action'] context.data[:rack][:request][:method] = request.method context.data[:rack][:request][:path] = request.original_fullpath context.data[:rack][:request][:params] = request.filtered_parameters context.data[:rack][:request][:session] = {id: request.session.id} context.data[:rack][:request][:url] = request.original_url context.data[:rack][:request][:remote] = request.remote_ip end result = context.profiler.duration(:action) { process_action_without_ws(*args) } return result rescue Exception => e raise e end
render(*args, &block)
click to toggle source
# File lib/wildsight/rails/railtie.rb, line 48 def render(*args, &block) context = Wildsight::Rack.detect_context(self.respond_to?(:request) ? request.env : {}) result = context.profiler.duration(:view) { render_without_ws(*args, &block) } return result end
wildsight_context()
click to toggle source
# File lib/wildsight/rails/railtie.rb, line 15 def wildsight_context @_wildsight_context ||= Wildsight::Rack.detect_context(self.respond_to?(:request) ? request.env : {}) end