Sha256: 2260ee5510e9c4a6fccfa6972c6062d1420d3eff9e0ece8c601a1f32b9be9fab
Contents?: true
Size: 1.26 KB
Versions: 2
Compression:
Stored size: 1.26 KB
Contents
module Rumx module Beans class Error include Bean bean_attr_reader :error_count, :integer, 'Number of times the measured block has raised an exception' bean_attr_reader :errors, :list, 'List of the last occurring errors', :list_type => :bean bean_attr_accessor :max_errors, :integer, 'The max number of error descriptions to keep' bean_attr_writer :reset, :boolean, 'Reset the error count' def initialize(opts={}) @errors = [] @max_errors = (opts[:max_errors] || 1).to_i end def reset=(val) if val @error_count = 0 end end def max_errors=(max_errors) bean_synchronize do @max_errors = max_errors @errors.shift while @errors.size > @max_errors end end def perform(prefix='') yield rescue Exception => e add_exception(e) raise end def add_exception(exception) bean_synchronize do @error_count += 1 @errors << Message.new(exception.message) @errors.shift while @errors.size > @max_errors end end def to_s "error_count=#{@error_count} last_error=#{@errors.last}" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rumx-0.2.3 | lib/rumx/beans/error.rb |
rumx-0.2.2 | lib/rumx/beans/error.rb |