IronRuby.Tests.Tests.EvalRedo1 C# (CSharp) Method

EvalRedo1() public method

public EvalRedo1 ( ) : void
return void
        public void EvalRedo1() {
            // redo in loop:
            AssertOutput(() => CompilerTest(@"
$x = 0
while (puts('in condition'); true)
  puts 'in loop'
  eval('module M; redo; end') if ($x += 1) < 2
  break
end
"), @"
in condition
in loop
in loop
");

            // redo in block:
            AssertOutput(() => CompilerTest(@"
$x = 0
2.times do |i|
  puts 'in block ' + i.to_s
  eval('module M; redo; end') if ($x += 1) < 2
end
"), @"
in block 0
in block 0
in block 1
");

            // redo in define_method block:
            AssertOutput(() => CompilerTest(@"
$x = 0
class C
  define_method :foo do
    puts 'in block'
    eval('module M; redo; end') if ($x += 1) < 2
  end
end
C.new.foo
"), @"
in block
in block
");
        }
Tests