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)