class Cucumber::Core::Test::Result::Summary

 An object that responds to the description protocol from the results

and collects summary information.

e.g.
    summary = Result::Summary.new
    Result::Passed.new(0).describe_to(summary)
    puts summary.total_passed
    => 1

Attributes

durations[R]
exceptions[R]

Public Class Methods

new() click to toggle source
# File lib/cucumber/core/test/result.rb, line 339
def initialize
  @totals = Hash.new { 0 }
  @exceptions = []
  @durations = []
end

Public Instance Methods

decrement_failed() click to toggle source
# File lib/cucumber/core/test/result.rb, line 380
def decrement_failed
  @totals[:failed] -= 1
end
duration(duration) click to toggle source
# File lib/cucumber/core/test/result.rb, line 367
def duration(duration)
  @durations << duration
  self
end
exception(exception) click to toggle source
# File lib/cucumber/core/test/result.rb, line 362
def exception(exception)
  @exceptions << exception
  self
end
method_missing(name, *args) click to toggle source
# File lib/cucumber/core/test/result.rb, line 345
def method_missing(name, *args)
  if name =~ /^total_/
    get_total(name)
  else
    increment_total(name)
  end
end
ok?(be_strict = StrictConfiguration.new) click to toggle source
# File lib/cucumber/core/test/result.rb, line 353
def ok?(be_strict = StrictConfiguration.new)
  TYPES.each do |type|
    if get_total(type) > 0
      return false unless Result.ok?(type, be_strict)
    end
  end
  true
end
total(for_status = nil) click to toggle source
# File lib/cucumber/core/test/result.rb, line 372
def total(for_status = nil)
  if for_status
    @totals.fetch(for_status, 0)
  else
    @totals.reduce(0) { |total, status| total += status[1] }
  end
end

Private Instance Methods

get_total(method_name) click to toggle source
# File lib/cucumber/core/test/result.rb, line 386
def get_total(method_name)
  status = method_name.to_s.gsub('total_', '').to_sym
  return @totals.fetch(status, 0)
end
increment_total(status) click to toggle source
# File lib/cucumber/core/test/result.rb, line 391
def increment_total(status)
  @totals[status] += 1
  self
end