Class: Klenod::Runtime::LazyImport

Inherits:
Object
  • Object
show all
Defined in:
lib/klenod/runtime/mod.rb

Instance Method Summary collapse

Constructor Details

#initialize(&loader) ⇒ LazyImport

Returns a new instance of LazyImport.



11
12
13
14
15
# File 'lib/klenod/runtime/mod.rb', line 11

def initialize(&loader)
  @loader = loader
  @loaded = false
  @value = nil
end

Instance Method Details

#callObject Also known as: value



17
18
19
20
21
22
23
# File 'lib/klenod/runtime/mod.rb', line 17

def call
  return @value if @loaded

  @value = @loader.call
  @loaded = true
  @value
end

#loaded?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/klenod/runtime/mod.rb', line 27

def loaded?
  @loaded
end

#reset!Object



31
32
33
34
35
# File 'lib/klenod/runtime/mod.rb', line 31

def reset!
  @loaded = false
  @value = nil
  self
end