class Absinthe::Distillery::Injector

Attributes

service_names[R]

Public Class Methods

new() click to toggle source
# File lib/absinthe/distillery/injector.rb, line 6
def initialize
  @parameters = { }
  @args = { }
  @service_names = []
  register :injector, self
end

Public Instance Methods

inject(name) click to toggle source
# File lib/absinthe/distillery/injector.rb, line 21
def inject name
  return @parameters[name] unless @parameters[name].is_a?(Class)
  injections = @args[name].map do |injection|
    injection.is_a?(Symbol) ? inject(injection) : injection
  end
  @parameters[name] = @parameters[name].new(*injections)
end
register(name, clazz, *args) click to toggle source
# File lib/absinthe/distillery/injector.rb, line 13
def register name, clazz, *args
  @parameters[name] = clazz
  if @parameters[name].is_a?(Class)
    @args[name] = args
    @service_names << name # we lack ordered hash traversal on 1.8.
  end
end