# File lib/dependor/auto_injector.rb, line 4 def initialize(injector, dependency_names, search_modules) @injector = injector @instantiator = Instantiator.new(self, dependency_names) @class_name_resolver = ClassNameResolver.new(search_modules) end
# File lib/dependor/auto_injector.rb, line 28 def class_exists?(name) !!@class_name_resolver.for_name(name) end
# File lib/dependor/auto_injector.rb, line 10 def get(name) return @injector.send(name) rescue ArgumentError return @injector.method(name).to_proc rescue NameError get_by_class_name(name) end
# File lib/dependor/auto_injector.rb, line 18 def get_by_class_name(name) ensure_class_exists!(name) klass = @class_name_resolver.for_name(name) instantiator = @instantiator @injector.define_singleton_method(name) do instantiator.instantiate(klass) end @injector.send(name) end
# File lib/dependor/auto_injector.rb, line 34 def ensure_class_exists!(name) unless class_exists?(name) raise UnknownObject.new("Injector does not know how to create object: #{name}") end end