module MultipleDevicesLogger::IgnoreExceptions
Public Instance Methods
exception_ignored?(exception)
click to toggle source
# File lib/multiple_devices_logger/ignore_exceptions.rb, line 7 def exception_ignored?(exception) return false unless exception.is_a?(Exception) ignored_exception_classes.any? { |klass| exception.is_a?(klass) } || ignored_exceptions_procs.any? { |proc| proc.call(exception) } end
ignore_exceptions(*arguments, &block)
click to toggle source
# File lib/multiple_devices_logger/ignore_exceptions.rb, line 12 def ignore_exceptions(*arguments, &block) @ignored_exception_class_names ||= [] @ignored_exceptions_procs ||= [] @ignored_exceptions_procs << Proc.new(&block) if block_given? [arguments].flatten.each do |argument| if argument.respond_to?(:call) @ignored_exceptions_procs << argument else klass = argument.is_a?(Class) ? argument : argument.to_s.presence.try(:constantize) raise("Invalid exception class: #{argument.inspect}") unless klass.is_a?(Class) && (klass == Exception || (klass < Exception)) @ignored_exception_class_names << klass.name end end @ignored_exception_class_names.uniq! nil end
ignored_exception_classes()
click to toggle source
# File lib/multiple_devices_logger/ignore_exceptions.rb, line 29 def ignored_exception_classes (@ignored_exception_class_names || []).map(&:constantize) end
ignored_exceptions_procs()
click to toggle source
# File lib/multiple_devices_logger/ignore_exceptions.rb, line 33 def ignored_exceptions_procs @ignored_exceptions_procs || [] end