How ensure works in ruby

Viewed 18356

checkout this code and the output

def lab
  yield
  ensure
    puts 'in ensure block'
    true
end

puts lab { puts 'inside inline block'; false }

output is
#inside inline block
#in ensure block
#false

I was expecting that after the block is executed then ensure will be executed and since ensure returns true , the final output of calling the method would be 'true'.

3 Answers
Related