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