summaryrefslogtreecommitdiff
path: root/test/irb/yamatanooroti
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2021-03-26 22:46:40 +0900
committeraycabta <aycabta@gmail.com>2021-04-03 01:17:08 +0900
commitab89c45b906380353d1b399781170cafe1d7b503 (patch)
treede096764a3426fdb74b1c60e38578aa948e05f44 /test/irb/yamatanooroti
parent254cd937c240281b4283bacb61b944eb52120ba5 (diff)
downloadruby-ab89c45b906380353d1b399781170cafe1d7b503.tar.gz
[ruby/irb] Evaluate each toplevel statement
https://github.com/ruby/irb/commit/bc1b1d8bc3
Diffstat (limited to 'test/irb/yamatanooroti')
-rw-r--r--test/irb/yamatanooroti/test_rendering.rb96
1 files changed, 86 insertions, 10 deletions
diff --git a/test/irb/yamatanooroti/test_rendering.rb b/test/irb/yamatanooroti/test_rendering.rb
index 171bfeaff5..8f55b38a93 100644
--- a/test/irb/yamatanooroti/test_rendering.rb
+++ b/test/irb/yamatanooroti/test_rendering.rb
@@ -49,6 +49,7 @@ begin
start_terminal(25, 80, %W{ruby -I#{@pwd}/lib -I#{@pwd}/../reline/lib #{@pwd}/exe/irb}, startup_message: 'start IRB')
write(<<~EOC)
class A
+ def inspect; '#<A>'; end
def a; self; end
def b; true; end
end
@@ -63,17 +64,92 @@ begin
assert_screen(<<~EOC)
start IRB
irb(main):001:1* class A
- irb(main):002:1* def a; self; end
- irb(main):003:1* def b; true; end
- irb(main):004:0> end
- irb(main):005:0*
- irb(main):006:0> a = A.new
- irb(main):007:0*
- irb(main):008:0> a
- irb(main):009:0> .a
- irb(main):010:0> .b
+ irb(main):002:1* def inspect; '#<A>'; end
+ irb(main):003:1* def a; self; end
+ irb(main):004:1* def b; true; end
+ irb(main):005:0> end
+ => :b
+ irb(main):006:0>
+ irb(main):007:0> a = A.new
+ => #<A>
+ irb(main):008:0>
+ irb(main):009:0> a
+ irb(main):010:0> .a
+ irb(main):011:0> .b
=> true
- irb(main):011:0>
+ irb(main):012:0>
+ EOC
+ end
+
+ def test_evaluate_each_toplevel_statement_by_multiline_paste
+ write_irbrc <<~'LINES'
+ puts 'start IRB'
+ LINES
+ start_terminal(40, 80, %W{ruby -I#{@pwd}/lib -I#{@pwd}/../reline/lib #{@pwd}/exe/irb}, startup_message: 'start IRB')
+ write(<<~EOC)
+ class A
+ def inspect; '#<A>'; end
+ def b; self; end
+ def c; true; end
+ end
+
+ a = A.new
+
+ a
+ .b
+ # aaa
+ .c
+
+ (a)
+ &.b()
+
+
+ class A def b; self; end; def c; true; end; end;
+ a = A.new
+ a
+ .b
+ # aaa
+ .c
+ (a)
+ &.b()
+ EOC
+ close
+ assert_screen(<<~EOC)
+ start IRB
+ irb(main):001:1* class A
+ irb(main):002:1* def inspect; '#<A>'; end
+ irb(main):003:1* def b; self; end
+ irb(main):004:1* def c; true; end
+ irb(main):005:0> end
+ => :c
+ irb(main):006:0>
+ irb(main):007:0> a = A.new
+ => #<A>
+ irb(main):008:0>
+ irb(main):009:0> a
+ irb(main):010:0> .b
+ irb(main):011:0> # aaa
+ irb(main):012:0> .c
+ => true
+ irb(main):013:0>
+ irb(main):014:0> (a)
+ irb(main):015:0> &.b()
+ => #<A>
+ irb(main):016:0>
+ irb(main):017:0>
+ irb(main):018:0> class A def b; self; end; def c; true; end; end;
+ => :c
+ irb(main):019:0> a = A.new
+ => #<A>
+ irb(main):020:0> a
+ irb(main):021:0> .b
+ irb(main):022:0> # aaa
+ irb(main):023:0> .c
+ => true
+ irb(main):024:0> (a)
+ irb(main):025:0> &.b()
+ => #<A>
+ irb(main):026:0>
EOC
end