class Zapata::RZpec::Runner
Attributes
ran[R]
Public Class Methods
new(spec_filename)
click to toggle source
# File lib/zapata/rzpec/runner.rb, line 8 def initialize(spec_filename) @spec_filename = spec_filename run # silence { run } end
Public Instance Methods
examples()
click to toggle source
# File lib/zapata/rzpec/runner.rb, line 60 def examples parsed_json_result['examples'] end
expected(method_name)
click to toggle source
# File lib/zapata/rzpec/runner.rb, line 35 def expected(method_name) report_lines = result_message(method_name).to_s.split(/\n/) expected_line = report_lines.detect { |line| line.match('got:') } if expected_line clean_expected_line = expected_line[10..-1] if (matches = clean_expected_line.match(/\#\<(.+):(.+)\>/)) "'Returned instance object #{matches[1]}'" else Printer.print(Diver.dive(Parser::CurrentRuby.parse(clean_expected_line)).to_raw) end else "'Exception in RSpec'" end end
methodz()
click to toggle source
# File lib/zapata/rzpec/runner.rb, line 27 def methodz examples.index_by { |ex| ex['description'].delete('#').to_sym } end
parsed_json_result()
click to toggle source
# File lib/zapata/rzpec/runner.rb, line 64 def parsed_json_result @json ||= JSON.parse(@stdout.readlines.last) end
result_message(method_name)
click to toggle source
# File lib/zapata/rzpec/runner.rb, line 31 def result_message(method_name) methodz[method_name]['exception']['message'] end
run()
click to toggle source
# File lib/zapata/rzpec/runner.rb, line 52 def run @ran = true @stdin, @stdout, @stderr = Bundler.with_clean_env do Open3.popen3("bundle exec rspec #{@spec_filename} --format j") end end
silence() { || ... }
click to toggle source
# File lib/zapata/rzpec/runner.rb, line 14 def silence original_stderr = $stderr.dup original_stdout = $stdout.dup $stdout.reopen('/dev/null', 'w') $stdout.reopen('/dev/null', 'w') yield $stderr = original_stderr $stdout = original_stdout end