Jedná se o tři způsoby, jak Ruby zpracovává kusy kódu jako data. Blok je předán metodě (není objekt); Proc a lambda jsou objekty, které zabalují blok (jsou volatelné, skladovatelné). Procs a lambdas se jemně liší v kontrole argumentů a chování return.
