# comment =begin embedded document =end # literal 1 1000000000000000000000 1.0 1.234e5 1..2 1...3 :symbol :"dynamic #{sym_embexpr} symbol" [1,2,3] {1 => 2} 'string' "string" "before #{str_embexpr} after" "str #@ivar str" "str #$gvar str" "string" "concat" `/bin/true` {1, 2, 3, 4} /regexp/ /regexp_with_opt/mioe /regexp #{regexp_embexpr} after/ %q[string] %Q[str#{str_embexpr}ing] %r[regexp] %w( a b c ) %W( a#{w_emb}b c d ) <2) m(1=>2,*a) m(1=>2,&b) m(1=>2,*a,&b) m () m (a) m (a,a) m (*a) m (&b) m (a,*a) m (a,&b) m (a,*a,&b) m (1=>2) m (1=>2,*a) m (1=>2,&b) m (1=>2,*a,&b) m a m a,a m *a m &b m a,*a m a,&b m a,*a,&b m 1=>2 m 1=>2,*a m 1=>2,&b m 1=>2,*a,&b obj.m obj.m() obj.m(a) obj.m(a,a) obj.m(*a) obj.m(&b) obj.m(a,*a) obj.m(a,&b) obj.m(a,*a,&b) obj.m(1=>2) obj.m(1=>2,*a) obj.m(1=>2,&b) obj.m(1=>2,*a,&b) obj.m () obj.m (a) obj.m (a,a) obj.m (*a) obj.m (&b) obj.m (a,*a) obj.m (a,&b) obj.m (a,*a,&b) obj.m (1=>2) obj.m (1=>2) obj.m (1=>2,*a) obj.m (1=>2,&b) obj.m (1=>2,*a,&b) obj.m a obj.m a,a obj.m *a obj.m &b obj.m a,*a obj.m a,&b obj.m a,*a,&b obj.m 1=>2 obj.m 1=>2,*a obj.m 1=>2,&b obj.m 1=>2,*a,&b # ambiguous argument m +1 m /r/ # iterator [1,2,3].each do |i| print i end {1=>true}.each do |k,v| puts k end [1,2,3].each {|i| print i } [1].each {|a,| } [1].each {|*b| } [1].each {|a,*b| } [1].each {|&block| } [1].each {|a,&block| } [1].each {|a,*b,&block| } a = lambda() {|n| n * n } a = lambda () {|n| n * n } a = lambda (a) {|n| n * n } a = lambda (a,b) {|n| n * n } # BEGIN, END BEGIN { } END { } # if, unless 1 if true 2 unless false if false 5 elsif false 6 elsif false then 7 else 8 end if m end unless 1 2 end unless m end 0 ? 1 : 2 # case case 'a' when 'b' ; when 'c' then 1 else 2 end case when 1 when 2 when 3 else end case 1 else end case else end # while, until, for while true break next redo end begin break end while true until false break next redo end begin break end until false for x in m() break next redo end 0 until true 1 while false # begin, rescue, else, ensure begin 1 rescue StandardError => er 2 rescue => er 3 retry else 4 ensure 5 end a = 1 rescue 2 # jumps def m redo yield yield nil super super 1 return return nil end # defined defined? f defined?(f) n = 1 \ + 1 __END__