class Codependent::Container
Constants
- CONFIG_BLOCK_MISSING_ERROR
Attributes
injectables[R]
singleton_values[R]
Public Class Methods
new(args = {}, &block)
click to toggle source
# File lib/codependent/container.rb, line 8 def initialize(args = {}, &block) @injectables = {} instance_exec(args, &block) if block end
Public Instance Methods
injectable(id)
click to toggle source
# File lib/codependent/container.rb, line 26 def injectable(id) injectables[id] end
injectable?(id)
click to toggle source
# File lib/codependent/container.rb, line 30 def injectable?(id) injectables.key?(id) end
instance(id, &config_block)
click to toggle source
# File lib/codependent/container.rb, line 14 def instance(id, &config_block) validate_config_arguments(config_block) add_injectable!(id, :instance, config_block) end
resolve(id)
click to toggle source
# File lib/codependent/container.rb, line 34 def resolve(id) return unless injectable?(id) resolver.resolve(id) end
singleton(id, &config_block)
click to toggle source
# File lib/codependent/container.rb, line 20 def singleton(id, &config_block) validate_config_arguments(config_block) add_injectable!(id, :singleton, config_block) end
Private Instance Methods
add_injectable!(id, type, config_block)
click to toggle source
# File lib/codependent/container.rb, line 52 def add_injectable!(id, type, config_block) builder = Codependent::InjectableBuilder.new(id, type) builder.instance_eval(&config_block) injectables[id] = builder.build end
resolver()
click to toggle source
# File lib/codependent/container.rb, line 44 def resolver Resolvers::RootResolver.new(injectables) end
validate_config_arguments(config_block)
click to toggle source
# File lib/codependent/container.rb, line 48 def validate_config_arguments(config_block) raise ArgumentError, CONFIG_BLOCK_MISSING_ERROR unless config_block end