Class: ProcessHost::Host

Inherits:
Object
  • Object
show all
Defined in:
lib/process_host/host.rb

Defined Under Namespace

Modules: Assertions

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(supervisor, component_names) ⇒ Host

Returns a new instance of Host.



6
7
8
9
# File 'lib/process_host/host.rb', line 6

def initialize supervisor, component_names
  @component_names = component_names
  @supervisor = supervisor
end

Instance Attribute Details

#component_namesObject (readonly)

Returns the value of attribute component_names.



3
4
5
# File 'lib/process_host/host.rb', line 3

def component_names
  @component_names
end

#supervisorObject (readonly)

Returns the value of attribute supervisor.



4
5
6
# File 'lib/process_host/host.rb', line 4

def supervisor
  @supervisor
end

Class Method Details

.build(env = nil, supervisor: nil, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# 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

Instance Method Details

#component(component_class) ⇒ Object



23
24
25
26
27
28
29
# 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

#componentsObject



31
32
33
# File 'lib/process_host/host.rb', line 31

def components
  @components ||= Set.new
end