Class: Ayl::Engine

Inherits:
Object
  • Object
show all
Includes:
Logging, Singleton
Defined in:
lib/ayl/engine.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Logging

#log_call, #logger

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_enginesObject



23
24
25
# File 'lib/ayl/engine.rb', line 23

def clear_engines
  @engines = []
end

.enginesObject



27
28
29
# File 'lib/ayl/engine.rb', line 27

def engines
  @engines ||= []
end

.get_active_engineObject



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

Returns:

  • (Boolean)


35
# File 'lib/ayl/engine.rb', line 35

def asynchronous?() false end

#is_connected?Boolean

Returns:

  • (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(message)
  log_call(:submit) do
    worker.process_message(message)
  end
end