class CrystalClear::RegistrationBuilder

Attributes

classes[R]
clazz[R]

Public Class Methods

for(clazz) click to toggle source
# File lib/crystal_clear/registration_builder.rb, line 19
def self.for(clazz)
  RegistrationBuilder.new(clazz)
end
new(clazz) click to toggle source
# File lib/crystal_clear/registration_builder.rb, line 13
def initialize(clazz)
  @clazz = clazz
  @classes = [clazz]
  @block = lambda { |add_procedure| add_procedure.call(@classes, ArgumentlessInstantiator.new(@clazz), @clazz) }
end

Public Instance Methods

build(add_procedure) click to toggle source
# File lib/crystal_clear/registration_builder.rb, line 50
def build(add_procedure)
  @block.call(add_procedure)
end
resolves_to_instance(instance) click to toggle source
# File lib/crystal_clear/registration_builder.rb, line 35
def resolves_to_instance(instance)
  @block = lambda { |add_procedure| add_procedure.call(@classes, PassThroughInstantiator.new(instance), @clazz) }
  self
end
resolves_to_provider(provider_class) click to toggle source
# File lib/crystal_clear/registration_builder.rb, line 40
def resolves_to_provider(provider_class)
  @block = lambda { |add_procedure| add_procedure.call(@classes, ProviderInstantiator.new(provider_class), @clazz) }
  self
end
resolves_to_singleton() click to toggle source
# File lib/crystal_clear/registration_builder.rb, line 30
def resolves_to_singleton
  @block = lambda { |add_procedure| add_procedure.call(@classes, SingletonInstantiator.new(@clazz), @clazz) }
  self
end
resolves_to_singleton_provider(provider_class) click to toggle source
# File lib/crystal_clear/registration_builder.rb, line 45
def resolves_to_singleton_provider(provider_class)
  @block = lambda { |add_procedure| add_procedure.call(@classes, SingletonProviderInstantiator.new(provider_class), @clazz) }
  self
end
under(*classes) click to toggle source
# File lib/crystal_clear/registration_builder.rb, line 23
def under(*classes)
  arr = classes.respond_to?(:each) ? classes : [classes]
  arr.each { |c| @classes.push(c) }
  @classes.uniq!
  self
end