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