Module: CSpec::Runner

Defined in:
lib/cspec/runner.rb

Class Method Summary collapse

Class Method Details

.present_result(success, results) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/cspec/runner.rb', line 18

def self.present_result(success, results)
  if success
    puts 'Success'.green
    true
  else
    puts 'Failure'.red
    puts ResultsOutputter.display(results).red
    false
  end
end

.process_errors(errors) ⇒ Object



40
41
42
43
# File 'lib/cspec/runner.rb', line 40

def self.process_errors(errors)
  puts errors unless errors.empty?
  !errors.empty?
end

.run(specs) ⇒ Object



29
30
31
32
33
34
35
36
37
38
# File 'lib/cspec/runner.rb', line 29

def self.run(specs)
  specs.map do |spec|
    result = ::CSpec::CodeExec.do(spec)
    expected = ::CSpec::DataType.convert(spec.expected)
    error_msg = "Expected #{spec.expected}, got: #{result}" if result != expected
    Result.from_spec(spec, error_msg)
  rescue StandardError => e
    Result.from_spec(spec, e.inspect)
  end
end

.run!(filepath) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/cspec/runner.rb', line 7

def self.run!(filepath)
  return false if process_errors(Loader.validate_structure(filepath))

  specs = Loader.load(filepath)
  return false if process_errors(::CSpec::Validator.validate_specs(specs))

  success = CSpec::Result.success?(results = run(specs))

  present_result(success, results)
end