Class: Ayl::Engine
- Inherits:
-
Object
- Object
- Ayl::Engine
- Includes:
- Logging, Singleton
- Defined in:
- lib/ayl/engine.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#asynchronous? ⇒ Boolean
These methods define the API that must be implemented by all engines.
- #is_connected? ⇒ Boolean
- #submit(message) ⇒ Object
Methods included from Logging
Class Method Details
.add_engine(engine) ⇒ Object
17 18 19 20 21 |
# File 'lib/ayl/engine.rb', line 17 def add_engine(engine) raise "engine must respond to asynchronous?" unless engine.respond_to?(:asynchronous?) raise "engine must respond to is_connected?" unless engine.respond_to?(:is_connected?) self.engines << engine end |
.clear_engines ⇒ Object
23 24 25 |
# File 'lib/ayl/engine.rb', line 23 def clear_engines @engines = [] end |
.engines ⇒ Object
27 28 29 |
# File 'lib/ayl/engine.rb', line 27 def engines @engines ||= [] end |
.get_active_engine ⇒ Object
11 12 13 14 15 |
# File 'lib/ayl/engine.rb', line 11 def get_active_engine self.engines ||= [] engine = self.engines.detect { |engine| engine.is_connected? } engine ||= self.instance end |
Instance Method Details
#asynchronous? ⇒ Boolean
These methods define the API that must be implemented by all engines
35 |
# File 'lib/ayl/engine.rb', line 35 def asynchronous?() false end |
#is_connected? ⇒ Boolean
36 |
# File 'lib/ayl/engine.rb', line 36 def is_connected?() true end |
#submit(message) ⇒ Object
38 39 40 41 42 |
# File 'lib/ayl/engine.rb', line 38 def submit() log_call(:submit) do worker.() end end |