module Corindon::DependencyInjection::Injectable

Public Instance Methods

do_make_definition(name, source, args:, kwargs:, &block) click to toggle source
# File lib/corindon/dependency_injection/injectable.rb, line 29
def do_make_definition(name, source, args:, kwargs:, &block)
  if block.nil?
    Definition.new(source, args: args, kwargs: kwargs, id: name)
  else
    Dsl.new(source, args: args, kwargs: kwargs, id: name).exec(&block)
  end
end
factory(service, method) click to toggle source
# File lib/corindon/dependency_injection/injectable.rb, line 7
def factory(service, method)
  Token::ServiceFactoryToken.new(service, method)
end
injectable(*args, **kwargs, &block) click to toggle source
# File lib/corindon/dependency_injection/injectable.rb, line 19
def injectable(*args, **kwargs, &block)
  extend Injectable

  define_singleton_method :definition do
    do_make_definition(name, self, args: args, kwargs: kwargs, &block)
  end
end
make_definition(name, source, *args, **kwargs, &block) click to toggle source
# File lib/corindon/dependency_injection/injectable.rb, line 15
def make_definition(name, source, *args, **kwargs, &block)
  do_make_definition("#{self.name.downcase.gsub(/::/, '.')}.#{name}", source, args: args, kwargs: kwargs, &block)
end
make_parameter(name) click to toggle source
# File lib/corindon/dependency_injection/injectable.rb, line 11
def make_parameter(name)
  Token::ParameterToken.new(key: "#{self.name.downcase.gsub(/::/, '.')}.#{name}")
end