app/models/exception_handler/exception.rb in exception_handler-0.6.5 vs app/models/exception_handler/exception.rb in exception_handler-0.7.0
- old
+ new
@@ -1,191 +1,191 @@
-module ExceptionHandler
-
- ############################################################
- ############################################################
-
- # => Search Bots
- # => Used in "Exception" class
- BOTS = %w(Baidu Gigabot Googlebot libwww-per lwp-trivial msnbot SiteUptime Slurp Wordpress ZIBB ZyBorg Yandex Jyxobot Huaweisymantecspider ApptusBot)
-
- # => Attributes
- # => Determine schema size etc
- ATTRS = %i(class_name status message trace target referrer params user_agent)
-
- ############################################################
- ############################################################
-
- # => Class (inheritance dependent on whether db option is available)
- self::Exception = Class.new (ExceptionHandler.config.try(:db) ? ActiveRecord::Base : Object) do
-
- # => Include individual elements
- # => Only required if no db present (no ActiveRecord)
- if ExceptionHandler.config.try(:db)
-
- # => Set Attrs
- def initialize attributes={}
- super
- ATTRS.each do |type|
- self[type] = eval type.to_s
- end
- end
-
- else
-
- # => AciveModel
- include ActiveModel::Model
- include ActiveModel::Validations
-
- # => Callback Extension
- extend ActiveModel::Callbacks
- define_model_callbacks :initialize, only: :after
-
- # => Initialize
- # => http://api.rubyonrails.org/classes/ActiveModel/Callbacks.html
- # => http://stackoverflow.com/a/17682228/1143732
- def initialize attributes={}
- super
- run_callbacks :initialize do
- # => Needed for after_initialize
- end
- end
-
- end
-
- ##################################
- ##################################
-
- ####################
- # Table #
- ####################
-
- # Schema
- ###################
- # class_name @exception.class.name
- # status ActionDispatch::ExceptionWrapper.new(@request.env, @exception).status_code
- # message @exception.message
- # trace @exception.backtrace.join("\n")
- # target @request.url
- # referer @request.referer
- # params @request.params.inspect
- # user_agent @request.user_agent
- # created_at
- # updated_at
-
- # => Table is called "errors"
- # => Dev needs to use migration to create db
- if ExceptionHandler.config.try(:db)
- def self.table_name
- ExceptionHandler.config.db
- end
- end
-
- ##################################
- ##################################
-
- ####################
- # Options #
- ####################
-
- # => Email
- # => after_initialize invoked after .new method called
- # => Should have been after_create but user may not save
- after_initialize Proc.new { |e| ExceptionHandler::ExceptionMailer.new_exception(e).deliver } if ExceptionHandler.config.try(:email) && ExceptionHandler.config.email.is_a?(String)
-
- # => Attributes
- attr_accessor :request, :klass, :exception, :description
- attr_accessor *ATTRS unless ExceptionHandler.config.try(:db)
-
- # => Validations
- validates :klass, exclusion: { in: [ActionController::RoutingError, AbstractController::ActionNotFound, ActiveRecord::RecordNotFound], message: "%{value}" }, if: "referer.blank?"
- validates :user_agent, format: { without: Regexp.new( BOTS.join("|"), Regexp::IGNORECASE ) }
-
- ##################################
- ##################################
-
- ####################################
- # Virtual
- ####################################
-
- # => Klass
- # => Used for validation (needs to be cleaned up in 0.7.0)
- def klass
- exception.class
- end
-
- # => Exception (virtual)
- def exception
- request.env['action_dispatch.exception']
- end
-
- # => Description
- def description
- I18n.with_options scope: [:exception], message: message do |i18n|
- i18n.t response, default: status
- end
- end
-
- ####################################
- # Exception
- ####################################
-
- # => Class Name
- def class_name
- exception.class.name
- end
-
- # => Message
- def message
- exception.message
- end
-
- # => Trace
- def trace
- exception.backtrace.join("\n")
- end
-
- ####################################
- # Request
- ####################################
-
- # => Target URL
- def target
- request.url
- end
-
- # => Referrer URL
- def referer
- request.referer
- end
-
- # => Params
- def params
- request.params.inspect
- end
-
- # => User Agent
- def user_agent
- request.user_agent
- end
-
- ####################################
- # Other
- ####################################
-
- # => Status code (404, 500 etc)
- def status
- ActionDispatch::ExceptionWrapper.new(request.env, exception).status_code.to_s
- end
-
- # => Server Response ("Not Found" etc)
- def response
- ActionDispatch::ExceptionWrapper.rescue_responses[class_name]
- end
-
- ##################################
- ##################################
-
- end
- end
-
- ############################################################
- ############################################################
+module ExceptionHandler
+
+ ############################################################
+ ############################################################
+
+ # => Search Bots
+ # => Used in "Exception" class
+ BOTS = %w(Baidu Gigabot Googlebot libwww-per lwp-trivial msnbot SiteUptime Slurp Wordpress ZIBB ZyBorg Yandex Jyxobot Huaweisymantecspider ApptusBot)
+
+ # => Attributes
+ # => Determine schema etc
+ ATTRS = %i(class_name status message trace target referrer params user_agent)
+
+ ############################################################
+ ############################################################
+
+ # => Class (inheritance dependent on whether db option is available)
+ self::Exception = Class.new (ExceptionHandler.config.try(:db) ? ActiveRecord::Base : Object) do
+
+ # => Include individual elements
+ # => Only required if no db present (no ActiveRecord)
+ if ExceptionHandler.config.try(:db)
+
+ # => Set Attrs
+ def initialize attributes={}
+ super
+ ATTRS.each do |type|
+ self[type] = eval type.to_s
+ end
+ end
+
+ else
+
+ # => AciveModel
+ include ActiveModel::Model
+ include ActiveModel::Validations
+
+ # => Callback Extension
+ extend ActiveModel::Callbacks
+ define_model_callbacks :initialize, only: :after
+
+ # => Initialize
+ # => http://api.rubyonrails.org/classes/ActiveModel/Callbacks.html
+ # => http://stackoverflow.com/a/17682228/1143732
+ def initialize attributes={}
+ super
+ run_callbacks :initialize do
+ # => Needed for after_initialize
+ end
+ end
+
+ end
+
+ ##################################
+ ##################################
+
+ ####################
+ # Table #
+ ####################
+
+ # Schema
+ ###################
+ # class_name @exception.class.name
+ # status ActionDispatch::ExceptionWrapper.new(@request.env, @exception).status_code
+ # message @exception.message
+ # trace @exception.backtrace.join("\n")
+ # target @request.url
+ # referer @request.referer
+ # params @request.params.inspect
+ # user_agent @request.user_agent
+ # created_at
+ # updated_at
+
+ # => Table is called "errors"
+ # => Dev needs to use migration to create db
+ if ExceptionHandler.config.try(:db)
+ def self.table_name
+ ExceptionHandler.config.db
+ end
+ end
+
+ ##################################
+ ##################################
+
+ ####################
+ # Options #
+ ####################
+
+ # => Email
+ # => after_initialize invoked after .new method called
+ # => Should have been after_create but user may not save
+ after_initialize Proc.new { |e| ExceptionHandler::ExceptionMailer.new_exception(e).deliver } if ExceptionHandler.config.try(:email) && ExceptionHandler.config.email.is_a?(String)
+
+ # => Attributes
+ attr_accessor :request, :klass, :exception, :description
+ attr_accessor *ATTRS unless ExceptionHandler.config.try(:db)
+
+ # => Validations
+ validates :klass, exclusion: { in: [ActionController::RoutingError, AbstractController::ActionNotFound, ActiveRecord::RecordNotFound], message: "%{value}" }, if: "referer.blank?"
+ validates :user_agent, format: { without: Regexp.new( BOTS.join("|"), Regexp::IGNORECASE ) }
+
+ ##################################
+ ##################################
+
+ ####################################
+ # Virtual
+ ####################################
+
+ # => Klass
+ # => Used for validation (needs to be cleaned up in 0.7.0)
+ def klass
+ exception.class
+ end
+
+ # => Exception (virtual)
+ def exception
+ request.env['action_dispatch.exception']
+ end
+
+ # => Description
+ def description
+ I18n.with_options scope: [:exception], message: message, status: status do |i18n|
+ i18n.t response, default: status
+ end
+ end
+
+ ####################################
+ # Exception
+ ####################################
+
+ # => Class Name
+ def class_name
+ exception.class.name
+ end
+
+ # => Message
+ def message
+ exception.message
+ end
+
+ # => Trace
+ def trace
+ exception.backtrace.join("\n")
+ end
+
+ ####################################
+ # Request
+ ####################################
+
+ # => Target URL
+ def target
+ request.url
+ end
+
+ # => Referrer URL
+ def referer
+ request.referer
+ end
+
+ # => Params
+ def params
+ request.params.inspect
+ end
+
+ # => User Agent
+ def user_agent
+ request.user_agent
+ end
+
+ ####################################
+ # Other
+ ####################################
+
+ # => Status code (404, 500 etc)
+ def status
+ ActionDispatch::ExceptionWrapper.new(request.env, exception).status_code.to_s
+ end
+
+ # => Server Response ("Not Found" etc)
+ def response
+ ActionDispatch::ExceptionWrapper.rescue_responses[class_name]
+ end
+
+ ##################################
+ ##################################
+
+ end
+ end
+
+ ############################################################
+ ############################################################