class AppfluxRuby::MessageBuilders::Bugflux
Constants
- ENV_EXCEPTION_METHODS
- ENV_REQUEST_KEYS
- ENV_REQUEST_METHODS
- SUPPORTED_BACKGROUND_JOB_PROCESSORS
Public Class Methods
build(exception, rack_env)
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 71 def self.build exception, rack_env new(exception, rack_env).build end
new(exception, rack_env)
click to toggle source
Calls superclass method
AppfluxRuby::MessageBuilders::Base::new
# File lib/appflux_ruby/message_builders/bugflux.rb, line 49 def initialize exception, rack_env super(exception, rack_env) @notice[:bugflux] = Hash.new { |hsh, key| hsh[key] = Hash.new } @bugflux_notice = @notice[:bugflux] end
Public Instance Methods
build()
click to toggle source
Calls superclass method
AppfluxRuby::MessageBuilders::Base#build
# File lib/appflux_ruby/message_builders/bugflux.rb, line 56 def build super add_app_id add_request_data add_params add_exception_data add_env add_headers add_session_data add_background_job_info add_custom_tabs @notice end
Private Instance Methods
add_app_id()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 117 def add_app_id @bugflux_notice[:app_id] = ::AppfluxRuby::Bugflux.config.app_id end
add_background_job_info()
click to toggle source
Adds background processor information as a dedicated tab on the UI.
# File lib/appflux_ruby/message_builders/bugflux.rb, line 131 def add_background_job_info if @rack_env[:component].in?(SUPPORTED_BACKGROUND_JOB_PROCESSORS) builder_klass_string = @rack_env[:component].classify builder_klass = "::AppfluxRuby::MessageBuilders::#{ builder_klass_string }".constantize @bugflux_notice[:custom_tabs] ||= Hash.new @bugflux_notice[:custom_tabs]["#{@rack_env[:component]}".to_sym] = builder_klass.to_hash(@rack_env) end end
add_custom_tabs()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 125 def add_custom_tabs @bugflux_notice[:custom_tabs] ||= Hash.new @bugflux_notice[:custom_tabs].merge!(::AppfluxRuby::Bugflux.additional_data) end
add_env()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 121 def add_env @bugflux_notice[:env][:app_env] = ::Rails.env if defined?(::Rails) end
add_exception_data()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 90 def add_exception_data ENV_EXCEPTION_METHODS.each do |_method| @bugflux_notice[:exception][_method.to_sym] = @exception.public_send(_method) end end
add_headers()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 103 def add_headers @bugflux_notice[:env][:headers] = Hash.new @rack_env.keys.grep(/^HTTP_/).each do |_key| @bugflux_notice[:env][:headers][_key] = @rack_env[_key] end @bugflux_notice[:env][:headers].delete('HTTP_COOKIE') end
add_params()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 113 def add_params @bugflux_notice[:env][:params] = @request.env['action_dispatch.request.parameters'] end
add_request_data()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 77 def add_request_data @bugflux_notice[:env][:request] = Hash.new _req_hash = @bugflux_notice[:env][:request] ENV_REQUEST_METHODS.each do |_method| _req_hash[_method.to_sym] = @request.public_send(_method) end ENV_REQUEST_KEYS.each do |_key| _req_hash[_key.to_sym] = @request.env[_key.to_s] end end
add_session_data()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 96 def add_session_data load_session return unless session_loaded? @bugflux_notice[:env][:session]= @request.env['rack.request.cookie_hash'] end
load_session()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 143 def load_session unless session_loaded? @session['___bugflux_dummy_key___'] ||= 'bugflux' end end
session_loaded?()
click to toggle source
# File lib/appflux_ruby/message_builders/bugflux.rb, line 149 def session_loaded? @session.respond_to?(:loaded?) ? @session.loaded? : true end