# File lib/rcodetools/xmptestunitfilter.rb, line 7 def initialize(opts = {}) super @output_stdout = false mod = @parentheses ? :WithParentheses : :Poetry extend self.class.const_get(mod) unless opts[:_no_extend_module] end
# File lib/rcodetools/xmptestunitfilter.rb, line 54 def _value_assertions(klass_value_txt_pair, expression) klass_txt, value_txt = klass_value_txt_pair value = eval(value_txt) || OTHER.new # special cases value = nil if value_txt.strip == "nil" value = false if value_txt.strip == "false" value_assertions klass_txt, value_txt, value, expression rescue Exception return object_assertions(klass_txt, value_txt, expression) end
# File lib/rcodetools/xmptestunitfilter.rb, line 15 def annotated_line(line, expression, runtime_data, idx) indent = /^\s*/.match(line)[0] assertions(expression.strip, runtime_data, idx).map{|x| indent + x}.join("\n") end
# File lib/rcodetools/xmptestunitfilter.rb, line 25 def assertions(expression, runtime_data, index) exceptions = runtime_data.exceptions ret = [] unless (vars = runtime_data.bindings[index]).empty? vars.each{|var| ret << equal_assertion(var, expression) } end if !(wanted = runtime_data.results[index]).empty? || !exceptions[index] case (wanted[0][1] rescue 1) when "nil" ret.concat nil_assertion(expression) else case wanted.size when 1 ret.concat _value_assertions(wanted[0], expression) else # discard values from multiple runs ret.concat(["#xmpfilter: WARNING!! extra values ignored"] + _value_assertions(wanted[0], expression)) end end else ret.concat raise_assertion(expression, exceptions, index) end ret end
# File lib/rcodetools/xmptestunitfilter.rb, line 20 def prepare_line(expr, idx) basic_eval = prepare_line_annotation(expr, idx) %Qbegin; #{basic_eval}; rescue Exception; $stderr.puts("#{MARKER}[#{idx}] ~> " + $!.class.to_s); end| end
# File lib/rcodetools/xmptestunitfilter.rb, line 65 def raise_assertion(expression, exceptions, index) ["assert_raise(#{exceptions[index][0]}){#{expression}}"] end