Class: LazyObject Private

Inherits:
Delegator show all
Defined in:
lazy_object.rb

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

An object which lazily evaluates its inner block only once a method is called on it.

Instance Method Summary collapse

Constructor Details

#initialize(&callable) ⇒ LazyObject

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns a new instance of LazyObject.



8
9
10
# File 'lazy_object.rb', line 8

def initialize(&callable)
  super(callable)
end

Instance Method Details

#__getobj__Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



12
13
14
15
16
# File 'lazy_object.rb', line 12

def __getobj__(&)
  return @__getobj__ if defined?(@__getobj__)

  @__getobj__ = @__callable__.call
end

#__setobj__(callable) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



18
19
20
# File 'lazy_object.rb', line 18

def __setobj__(callable)
  @__callable__ = callable
end