Class: Async::Service::Generic
- Inherits:
-
Object
- Object
- Async::Service::Generic
- 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
-
.wrap(environment) ⇒ Object
Convert the given environment into a service if possible.
Instance Method Summary collapse
-
#initialize(environment, evaluator = environment.evaluator) ⇒ Generic
constructor
Initialize the service from the given environment.
-
#name ⇒ Object
The name of the service - used for informational purposes like logging.
-
#setup(container) ⇒ Object
Setup the service into the specified container.
-
#start ⇒ Object
Start the service.
-
#stop(graceful = true) ⇒ Object
Stop the service.
- #to_h ⇒ Object
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
#name ⇒ Object
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 |
#start ⇒ Object
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_h ⇒ Object
30 31 32 |
# File 'lib/async/service/generic.rb', line 30 def to_h @evaluator.to_h end |