Class: Proof::Summary

Inherits:
Object
  • Object
show all
Includes:
Initializer
Defined in:
lib/proof/summary.rb

Constant Summary collapse

PASS_PATTERN =
/Pass:.*$/
FAIL_PATTERN =
/-> Fail:.*$/
ERROR_PATTERN =
/Error:.*$/

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.output(results, output) ⇒ Object



11
12
13
14
15
# File 'lib/proof/summary.rb', line 11

def self.output(results, output)
  instance = new results, output
  instance.output
  instance.status
end

Instance Method Details

#any_failures?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/proof/summary.rb', line 43

def any_failures?
  [fails.count, errors.count].any? { |count| count > 0 }
end

#any_successes?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/proof/summary.rb', line 47

def any_successes?
  [fails.count, errors.count].any? { |count| count > 0 }
end

#errorsObject



25
26
27
# File 'lib/proof/summary.rb', line 25

def errors
  results.grep ERROR_PATTERN
end

#failsObject



21
22
23
# File 'lib/proof/summary.rb', line 21

def fails
  results.grep FAIL_PATTERN
end

#no_results?Boolean

Returns:

  • (Boolean)


39
40
41
# File 'lib/proof/summary.rb', line 39

def no_results?
  [passes.count, fails.count, errors.count].all? { |count| count == 0 }
end

#outputObject



57
58
59
# File 'lib/proof/summary.rb', line 57

def output
  @the_output.summary summary
end

#passesObject



17
18
19
# File 'lib/proof/summary.rb', line 17

def passes
  results.grep PASS_PATTERN
end

#statusObject



29
30
31
32
33
34
35
36
37
# File 'lib/proof/summary.rb', line 29

def status
  if no_results? or any_failures?
    @status = :failure
  else any_successes?
    @status = :success
  end

  @status
end

#summaryObject



51
52
53
54
55
# File 'lib/proof/summary.rb', line 51

def summary
  "Passed: #{passes.count}\n" \
  "Failed: #{fails.count}\n" \
  "Errors: #{errors.count}\n"
end