do block test

[hirasawa@centos-hira chapter03]$ cat test-doblock.rb
def foo(x)
  p "--foo in"
  puts "foo's block" if block_given?
  p "--foo out"
end

def bar
  p "--bar in"
  puts "bar's block" if block_given?
  p "--bar out"
end


#bar do 1 end  #=> bar's block
#bar {1}  #=> bar's block

#foo(1){}
#foo(1)

#foo (bar) do 1 end  #=> foo's block
#foo (bar) {}       #=> foo's block

##foo (bar do 1 end)       #=> syntax error
#foo (bar {1})       #=> bar's block

##foo (bar do 1 end){}       #=> syntax error
#foo (bar {1}){}       #=> bar's block

foo bar do 1 end       #=> foo's block
foo bar {1}       #=> bar's block
[hirasawa@centos-hira chapter03]$
[hirasawa@centos-hira chapter03]$ ruby test-doblock.rb
"--bar in"
"--bar out"
"--foo in"
foo's block
"--foo out"
"--bar in"
bar's block
"--bar out"
"--foo in"
"--foo out"
[hirasawa@centos-hira chapter03]$