require File.dirname(__FILE__) + '/../../test_helper' require 'spec/test_to_spec/ruby2ruby' R2r2r = RubyToRuby.translate(RubyToRuby).sub("RubyToRuby","RubyToRubyToRuby") eval R2r2r class RubyToRubyToRuby class< e raise if n != e.message n = lambda{|i| lambda{|j| "#{i} #{z+2*2} #{j.message.reverse}" } }[n].call(e) unless retried retried = true retry end rescue ArgumentError => e e.message rescue end ensure x << "ensure a-working" end def foobar a, █ block.call(a) end def k; foobar [1,2,3].each { |x| x*2 } do |x| x*2 end end def test_block_predecence_escape eval RubyToRuby.translate(self.class, :k).sub(" k"," l") assert_equal(k, l) end def test_hairy_method eval RubyToRuby.translate(self.class, :hairy_method).sub(" h", " f") blk = lambda{|x,y,z,arr| unless y x.to_i*2 else x.to_i*y*z*arr.inject(1){|s,i| s+i} end } x1 = "" x2 = "" res = [hairy_method(-5,x1,&blk), fairy_method(-5,x2,&blk)] assert_equal(res.first, res.last) assert_equal(x1, x2) assert_equal("ensure a-working", x1) end end