Class: Async::Service::Generic

Inherits:
Object
  • Object
show all
Defined in:
lib/async/service/generic.rb

Overview

Captures the stateful behaviour of a specific service. Specifies the interfaces required by derived classes.

Designed to be invoked within an Controller::Container.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(environment, evaluator = environment.evaluator) ⇒ Generic

Initialize the service from the given environment.



25
26
27
28
# File 'lib/async/service/generic.rb', line 25

def initialize(environment, evaluator = environment.evaluator)
	@environment = environment
	@evaluator = evaluator
end

Class Method Details

.wrap(environment) ⇒ Object

Convert the given environment into a service if possible.



15
16
17
18
19
20
21
# File 'lib/async/service/generic.rb', line 15

def self.wrap(environment)
	evaluator = environment.evaluator
	
	if service_class = evaluator.service_class || self
		return service_class.new(environment, evaluator)
	end
end

Instance Method Details

#nameObject

The name of the service - used for informational purposes like logging. e.g. myapp.com.



36
37
38
# File 'lib/async/service/generic.rb', line 36

def name
	@evaluator.name
end

#setup(container) ⇒ Object

Setup the service into the specified container.



47
48
49
# File 'lib/async/service/generic.rb', line 47

def setup(container)
	Console.debug(self) {"Setting up service #{self.name}..."}
end

#startObject

Start the service.



41
42
43
# File 'lib/async/service/generic.rb', line 41

def start
	Console.debug(self) {"Starting service #{self.name}..."}
end

#stop(graceful = true) ⇒ Object

Stop the service.



52
53
54
# File 'lib/async/service/generic.rb', line 52

def stop(graceful = true)
	Console.debug(self) {"Stopping service #{self.name}..."}
end

#to_hObject



30
31
32
# File 'lib/async/service/generic.rb', line 30

def to_h
	@evaluator.to_h
end