lib/safely_block.rb in safely_block-0.1.0 vs lib/safely_block.rb in safely_block-0.1.1

- old
+ new

@@ -1,45 +1,3 @@ -require "errbase" - -module Safely - VERSION = "0.1.0" - - class << self - attr_accessor :env, :raise_envs, :tag, :report_exception_method - - def report_exception(e) - report_exception_method.call(e) - end - end - - DEFAULT_EXCEPTION_METHOD = proc do |e| - e = e.dup # leave original exception unmodified - e.message.prepend("[safely] ") if e.message && Safely.tag - Errbase.report(e) - end - - self.env = ENV["RACK_ENV"] || ENV["RAILS_ENV"] || "development" - self.tag = true - self.report_exception_method = DEFAULT_EXCEPTION_METHOD - self.raise_envs = %w(development test) - - module Methods - def safely(options = {}) - yield - rescue *Array(options[:only] || StandardError) => e - raise e if Array(options[:except]).any? { |c| e.is_a?(c) } - raise e if Safely.raise_envs.include?(Safely.env) - sample = options[:sample] - if sample ? rand < 1.0 / sample : true - begin - Safely.report_exception(e) unless Array(options[:silence]).any? { |c| e.is_a?(c) } - rescue => e2 - $stderr.puts "FAIL-SAFE #{e2.class.name}: #{e2.message}" - end - end - options[:default] - end - alias_method :yolo, :safely - end -end +require "safely/core" Object.send :include, Safely::Methods