Class: Dependency::ResolverBinding

Inherits:
Object
  • Object
show all
Defined in:
lib/strong_ruby/dependency/resolver_binding.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(object_constructor, is_singleton) ⇒ ResolverBinding

Returns a new instance of ResolverBinding.



6
7
8
9
# File 'lib/strong_ruby/dependency/resolver_binding.rb', line 6

def initialize(object_constructor, is_singleton)
  @object_constructor = object_constructor
  @is_singleton = is_singleton
end

Instance Attribute Details

#object_constructorObject (readonly)

Returns the value of attribute object_constructor.



4
5
6
# File 'lib/strong_ruby/dependency/resolver_binding.rb', line 4

def object_constructor
  @object_constructor
end

Instance Method Details

#constructObject



15
16
17
18
19
20
21
22
# File 'lib/strong_ruby/dependency/resolver_binding.rb', line 15

def construct
  if singleton? && constructed_instance?
    return constructed_instance
  end
  obj = object_constructor.call
  @constructed_instance = obj if singleton?
  obj
end

#constructed_instanceObject



11
# File 'lib/strong_ruby/dependency/resolver_binding.rb', line 11

def constructed_instance; @constructed_instance; end

#constructed_instance?Boolean

Returns:

  • (Boolean)


12
# File 'lib/strong_ruby/dependency/resolver_binding.rb', line 12

def constructed_instance?; !@constructed_instance.nil?; end

#singleton?Boolean

Returns:

  • (Boolean)


13
# File 'lib/strong_ruby/dependency/resolver_binding.rb', line 13

def singleton?; @is_singleton; end