class Codependent::Manager

Public Class Methods

instance() click to toggle source
# File lib/codependent/manager.rb, line 8
def instance
  @instance ||= Manager.new
end
method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/codependent/manager.rb, line 16
def method_missing(method, *args, &block)
  super unless instance.respond_to?(method)

  @instance.send(method, *args, &block)
end
reset!() click to toggle source
# File lib/codependent/manager.rb, line 12
def reset!
  @instance = nil
end

Public Instance Methods

[](container_id) click to toggle source
# File lib/codependent/manager.rb, line 44
def [](container_id)
  get_container(container_id)
end
container(container_id, &config_block) click to toggle source
# File lib/codependent/manager.rb, line 36
def container(container_id, &config_block)
  unless container?(container_id)
    containers[container_id] = build_container(config_block)
  end

  get_container(container_id)
end
container?(container_id) click to toggle source
# File lib/codependent/manager.rb, line 23
def container?(container_id)
  containers.key?(container_id)
end
global() click to toggle source
# File lib/codependent/manager.rb, line 48
def global
  get_container(:global)
end
reset_container!(container_id) click to toggle source
# File lib/codependent/manager.rb, line 27
def reset_container!(container_id)
  return unless container?(container_id)

  config_block = containers[container_id][:config]
  containers[container_id] = build_container(config_block)

  get_container(container_id)
end

Private Instance Methods

build_container(config_block = nil) click to toggle source
# File lib/codependent/manager.rb, line 54
def build_container(config_block = nil)
  {
    container: Codependent::Container.new(&config_block),
    config: config_block
  }
end
containers() click to toggle source
# File lib/codependent/manager.rb, line 65
def containers
  @containers ||= { global: build_container }
end
get_container(container_id) click to toggle source
# File lib/codependent/manager.rb, line 61
def get_container(container_id)
  containers[container_id][:container]
end