class WorkList::Results
Attributes
failures[R]
items[R]
successes[R]
Public Class Methods
new()
click to toggle source
# File lib/work_list/results.rb, line 5 def initialize @items = [] @successes = 0 @failures = 0 end
Public Instance Methods
all_failures?()
click to toggle source
# File lib/work_list/results.rb, line 63 def all_failures? failure_rate == 1.0 end
each_exception(&block)
click to toggle source
# File lib/work_list/results.rb, line 42 def each_exception(&block) exceptions.each(&block) self end
each_result(&block)
click to toggle source
# File lib/work_list/results.rb, line 33 def each_result(&block) results.each(&block) self end
exceptions()
click to toggle source
# File lib/work_list/results.rb, line 38 def exceptions @items.reject { |item| item[:success] }.map { |item| item[:exception] } end
failure?()
click to toggle source
# File lib/work_list/results.rb, line 55 def failure? @failures > 0 end
failure_rate()
click to toggle source
# File lib/work_list/results.rb, line 67 def failure_rate if noop? 0 else Rational(@failures, @items.count) end end
noop?()
click to toggle source
# File lib/work_list/results.rb, line 59 def noop? @items.empty? end
outcomes()
click to toggle source
# File lib/work_list/results.rb, line 47 def outcomes @items.map { |item| item[:success] } end
raise_exception()
click to toggle source
# File lib/work_list/results.rb, line 87 def raise_exception raise exceptions.first end
raise_if_all_failures()
click to toggle source
# File lib/work_list/results.rb, line 79 def raise_if_all_failures raise_exception if all_failures? end
raise_if_failure()
click to toggle source
# File lib/work_list/results.rb, line 75 def raise_if_failure raise_exception if failure? end
raise_if_failure_rate(threshold)
click to toggle source
# File lib/work_list/results.rb, line 83 def raise_if_failure_rate(threshold) raise_exception if failure_rate >= threshold end
record_failure(exception)
click to toggle source
# File lib/work_list/results.rb, line 20 def record_failure(exception) @failures += 1 @items << { result: nil, exception: exception, success: false } end
record_success(result)
click to toggle source
# File lib/work_list/results.rb, line 11 def record_success(result) @successes += 1 @items << { result: result, exception: nil, success: true } end
results()
click to toggle source
# File lib/work_list/results.rb, line 29 def results @items.select { |item| item[:success] }.map { |item| item[:result] } end
success?()
click to toggle source
# File lib/work_list/results.rb, line 51 def success? @successes > 0 end