Module: Tap::Support::Dependency

Defined in:
lib/tap/support/dependency.rb

Overview

Constrains an Executable to only _execute once, and provides several methods making the Executable behave like a Dependency.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#_resultObject

The audited result of self



9
10
11
# File 'lib/tap/support/dependency.rb', line 9

def _result
  @_result
end

Class Method Details

.extended(base) ⇒ Object

:nodoc:



11
12
13
# File 'lib/tap/support/dependency.rb', line 11

def self.extended(base) # :nodoc:
  base.instance_variable_set(:@_result, nil)
end

Instance Method Details

#_execute(*args) ⇒ Object

Conditional _execute; only calls method_name if resolved? is false (thus assuring self will only be executed once).

Returns _result.



20
21
22
23
24
25
# File 'lib/tap/support/dependency.rb', line 20

def _execute(*args)
  app.dependencies.resolve(self) do
    @_result = super
  end unless resolved?
  _result
end

#resetObject

Resets the dependency by setting _result to nil.



38
39
40
# File 'lib/tap/support/dependency.rb', line 38

def reset
  @_result = nil
end

#resolveObject

Alias for _execute().



28
29
30
# File 'lib/tap/support/dependency.rb', line 28

def resolve
  _execute
end

#resolved?Boolean

True if _result is non-nil.

Returns:

  • (Boolean)


33
34
35
# File 'lib/tap/support/dependency.rb', line 33

def resolved?
  @_result != nil
end