Ruby has many faces - well just two main ones really, object oriented and functional. Everything in Ruby is an object and every expression returns a value. Functional thinking isn't as easy to acquire ...
The use of blocks with methods is a syntactic cover that hides the fact that blocks can be passed like data. There are both Proc and Lambda objects which can be used to wrap methods as objects so that ...