Quoting Erik Veenstra <google / erikveen.dds.nl>:

>      @items     = LazyLoad.new{load; @items}
>      @snapshots = LazyLoad.new{load; @snapshots}

I forgot to mention.  I think you've hit on a nice idiom for using
lazy evaluation in Ruby here.

In simpler cases, it could look something like:

 @blah = promise { @blah = expensive_computation }

Good find!

-mental