lib/yogi_berra.rb in yogi_berra-0.1.7 vs lib/yogi_berra.rb in yogi_berra-0.2.0
- old
+ new
@@ -2,31 +2,39 @@
require 'yogi_berra/backtrace'
require 'yogi_berra/notice'
require 'yogi_berra/exception_middleware'
require 'yogi_berra/data'
require 'yogi_berra/logger'
+require 'facets'
+include Facets
-if defined?(::Rails.version) && ::Rails.version.to_f >= 3.0
- require 'yogi_berra/engine'
-else
- require 'yogi_berra/rails'
-end
-
module YogiBerra
+ mattr_accessor :ignored_exceptions, :yogi_yml, :settings, :mongo_client, :connection
+ @@ignored_exceptions = %w{ActiveRecord::RecordNotFound AbstractController::ActionNotFound ActionController::RoutingError}
+ @@yogi_yml = "config/yogi.yml"
+
class << self
# Stores the notice exception
# @see YogiBerra.exceptionize
# @params exception
# @params environment
# @params opts
def exceptionize(exception, environment = nil, opts = {})
+ return false if ignored_exception?(exception)
notice = build_notice_for(exception, opts)
- if YogiBerra::Catcher.connection
+ if YogiBerra.connection
YogiBerra::Data.store!(notice, environment)
end
end
+ def configure
+ yield self
+ end
+
private
+ def ignored_exception?(exception)
+ @@ignored_exceptions.collect(&:to_s).include?(exception.class.name)
+ end
def build_notice_for(exception, opts = {})
exception = unwrap_exception(exception)
if exception.respond_to?(:to_hash)
opts = opts.merge(exception.to_hash)