module Dependor::AutoInject

Public Class Methods

included(klass) click to toggle source
# File lib/dependor/auto_inject.rb, line 13
def self.included(klass)
  klass.extend ClassMethods
end

Public Instance Methods

inject(klass, overrides = {}) click to toggle source
# File lib/dependor/auto_inject.rb, line 25
def inject(klass, overrides = {})
  injector = Dependor::CustomizedInjector.new(auto_injector, overrides)
  instantiator = Dependor::Instantiator.new(injector, dependency_names)
  instantiator.instantiate(klass)
end
method_missing(name, *args, &block) click to toggle source
# File lib/dependor/auto_inject.rb, line 17
def method_missing(name, *args, &block)
  auto_injector.get_by_class_name(name)
end
respond_to_missing?(name, include_private = false) click to toggle source
# File lib/dependor/auto_inject.rb, line 21
def respond_to_missing?(name, include_private = false)
  auto_injector.class_exists?(name)
end

Private Instance Methods

auto_injector() click to toggle source
# File lib/dependor/auto_inject.rb, line 33
def auto_injector
  @auto_injector ||= Dependor::AutoInjector.new(self, dependency_names, self.class.search_modules)
end
dependency_names() click to toggle source
# File lib/dependor/auto_inject.rb, line 37
def dependency_names
  @dependency_names ||= Dependor::DependencyNamesCache.new
end