This GEM allows to call methods lazily. The actual work will not be
performed until the result is used. There's no promise/force semantics, just a
single call (or block) is stored and executed the first time the (lazy) result
gem "lazyeval", "~> 0.0.2"