[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]$