class Dio::InjectorStore

@api private InjectorStore manages Dio::Injector instances.

Public Class Methods

new(injectors = {}) click to toggle source
# File lib/dio/injector_store.rb, line 9
def initialize(injectors = {})
  @injectors = injectors
end

Public Instance Methods

ids() click to toggle source
# File lib/dio/injector_store.rb, line 34
def ids
  @injectors.keys
end
load(id) click to toggle source
# File lib/dio/injector_store.rb, line 26
def load(id)
  @injectors[id]
end
register(id, injector = nil) click to toggle source
# File lib/dio/injector_store.rb, line 13
def register(id, injector = nil)
  if @injectors.key?(id)
    injector ||= @injectors[id]
    if injector != @injectors[id]
      raise "Injector ID #{id} is already used for another injector"
    end
  elsif injector.nil?
    injector = Dio::Injector.new
  end

  @injectors[id] = injector
end
remove(id) click to toggle source
# File lib/dio/injector_store.rb, line 30
def remove(id)
  @injectors.remove(id)
end