class ProcessHost::Host

Attributes

component_names[R]
supervisor[R]

Public Class Methods

build(env=nil, supervisor: nil, &block) click to toggle source
# File lib/process_host/host.rb, line 11
def self.build env=nil, supervisor: nil, &block
  env ||= ENV

  supervisor ||= Actor::Supervisor.new

  component_names = Component::NameList.get env

  instance = new supervisor, component_names
  instance.instance_exec supervisor, &block
  instance
end
new(supervisor, component_names) click to toggle source
# File lib/process_host/host.rb, line 6
def initialize supervisor, component_names
  @component_names = component_names
  @supervisor = supervisor
end

Public Instance Methods

component(component_class) click to toggle source
# File lib/process_host/host.rb, line 23
def component component_class
  return unless component_names.include? component_class.name

  component = component_class.start supervisor
  components << component
  component
end
components() click to toggle source
# File lib/process_host/host.rb, line 31
def components
  @components ||= Set.new
end