Class: Justdi::Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/justdi/definition.rb

Overview

Wrapper over pure container values

Constant Summary collapse

CLASS =
:class
STATIC =
:static
FACTORY =
:factory

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type: STATIC, value:) ⇒ Definition

Returns a new instance of Definition.

Parameters:

  • type (Symbol) (defaults to: STATIC)
  • value (*)


14
15
16
17
18
# File 'lib/justdi/definition.rb', line 14

def initialize(type: STATIC, value:)
  @type        = type
  @pure_value  = value
  @is_resolved = false
end

Instance Attribute Details

#pure_value ⇒ Object (readonly)

Returns the value of attribute pure_value.



10
11
12
# File 'lib/justdi/definition.rb', line 10

def pure_value
  @pure_value
end

#type ⇒ Object (readonly)

Returns the value of attribute type.



10
11
12
# File 'lib/justdi/definition.rb', line 10

def type
  @type
end

#value ⇒ Object (readonly)

Returns the value of attribute value.



10
11
12
# File 'lib/justdi/definition.rb', line 10

def value
  @value
end

Instance Method Details

#resolve {|self| ... } ⇒ *

Get resolved value using generator

Yields:

  • (self) —

    generating resolved value

Returns:

  • (*)


31
32
33
34
35
36
37
38
# File 'lib/justdi/definition.rb', line 31

def resolve
  return value if resolved?

  @value = yield self
  @is_resolved = true

  @value
end

#resolved? ⇒ Boolean

Definition value is resolved

Returns:

  • (Boolean)


23
24
25
# File 'lib/justdi/definition.rb', line 23

def resolved?
  @is_resolved
end