Class: Falcon::Service::Generic

Inherits:
Object
  • Object
show all
Defined in:
lib/falcon/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 Async::Controller::Container.

Direct Known Subclasses

Proxy, Supervisor

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(environment) ⇒ Generic

Initialize the service from the given environment.



24
25
26
27
# File 'lib/falcon/service/generic.rb', line 24

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

Class Method Details

.wrap(environment) ⇒ Object

Convert the given environment into a service if possible.



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

def self.wrap(environment)
	evaluator = environment.evaluator
	service = evaluator.service || self
	
	return service.new(environment)
end

Instance Method Details

#include?(keys) ⇒ Boolean

Whether the service environment contains the specified keys. This is used for matching environment configuration to service behaviour.

Returns:

  • (Boolean)


31
32
33
# File 'lib/falcon/service/generic.rb', line 31

def include?(keys)
	keys.all?{|key| @environment.include?(key)}
end

#loggerObject

The logger to use for this service.



43
44
45
# File 'lib/falcon/service/generic.rb', line 43

def logger
	return Console.logger # .with(name: name)
end

#nameObject

The name of the service. e.g. ‘myapp.com`.



37
38
39
# File 'lib/falcon/service/generic.rb', line 37

def name
	@evaluator.name
end

#setup(container) ⇒ Object

Setup the service into the specified container.



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

def setup(container)
end

#startObject

Start the service.



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

def start
end

#stopObject

Stop the service.



57
58
# File 'lib/falcon/service/generic.rb', line 57

def stop
end