class Chef::Decorator::LazyArray

Lazy Array around Lazy Objects

This only lazys access through `#[]`. In order to implement each we need to know how many items we have and what their indexes are, so we'd have to evalute the proc which makes that impossible. You can call methods like each and the decorator will forward the method, but item access will not be lazy.

at() and fetch() are not implemented but technically could be.

@example

  def foo
      puts "allocated"
        "value"
  end

  a = Chef::Decorator::LazyArray.new { [ foo ] }

  puts "started"
  a[0]
  puts "still lazy"
  puts a[0]

outputs:

  started
  still lazy
  allocated
  value

@since 12.10.x

Public Instance Methods

[](idx) click to toggle source
# File lib/chef/decorator/lazy_array.rb, line 53
def [](idx)
  block = @block
  Lazy.new { block.call[idx] }
end