Method: Matest::SpecPrinter#print_subexpression

Defined in:
lib/matest/spec_printer.rb


84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/matest/spec_printer.rb', line 84

def print_subexpression(subexpression, status)
  just_before_assertion = status.example.just_before_assertion.code
  code = just_before_assertion + subexpression
  
  result = Evaluator.new(just_before_assertion, proc{}).eval_string(code)
  if result.class != Matest::EvalErr
    explanation = []
    explanation << expression("  #{subexpression}")
    explanation << "\n"
    explanation << value("    # => #{result}")
    puts explanation.join
    true
  else
    code = "  The assertion couldn't be explained.\n  The error message was:\n\#{result}\n  CODE\n    puts error(code)\n    false\n  end\nend\n"