Sha256: b08075e932d5e8fa2fd2a2e03fc5cb3f3f5e84c7649e3e17bf9cf9fc9dc515ee

Contents?: true

Size: 1.72 KB

Versions: 13

Compression:

Stored size: 1.72 KB

Contents

module Bugsnag
  module Rails
    module ControllerMethods
      private
      def notify_bugsnag(exception, custom_data=nil)
        request_data = bugsnag_request_data
        request_data[:meta_data][:custom] = custom_data if custom_data
        Bugsnag.notify(exception, request_data)
      end

      def bugsnag_request_data
        {
          :user_id => bugsnag_session_id,
          :context => Bugsnag::Helpers.param_context(params),
          :meta_data => {
            :request => {
              :url => bugsnag_request_url,
              :controller => params[:controller],
              :action => params[:action],
              :params => bugsnag_filter_if_filtering(Bugsnag::Helpers.cleanup_hash(params.to_hash)),
            },
            :session => bugsnag_filter_if_filtering(Bugsnag::Helpers.cleanup_hash(bugsnag_session_data)),
            :environment => bugsnag_filter_if_filtering(Bugsnag::Helpers.cleanup_hash(request.env))
          }
        }
      end

      def bugsnag_session_id
        session = bugsnag_session_data
        session[:session_id] || session["session_id"]
      end
      
      def bugsnag_request_url
        url = "#{request.protocol}#{request.host}"

        unless [80, 443].include?(request.port)
          url << ":#{request.port}"
        end

        url << request.fullpath
        url
      end

      def bugsnag_session_data
        if session.respond_to?(:to_hash)
          session.to_hash
        else
          session.data
        end
      end
    
      def bugsnag_filter_if_filtering(hash)
        return hash if ! hash.is_a?(Hash)

        if respond_to?(:filter_parameters)
          filter_parameters(hash) rescue hash
        else
          hash
        end
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
bugsnag-1.1.5 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.1.4 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.1.3 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.1.2 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.1.1 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.1.0 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.0.10 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.0.9 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.0.8 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.0.7 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.0.6 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.0.5 lib/bugsnag/rails/controller_methods.rb
bugsnag-1.0.4 lib/bugsnag/rails/controller_methods.rb