Class: Hakuban::Engine
- Inherits:
-
Object
- Object
- Hakuban::Engine
- Defined in:
- lib/hakuban/engine.rb
Constant Summary collapse
- @@descendants =
[]
Class Method Summary collapse
Instance Method Summary collapse
- #init(exchange) ⇒ Object
-
#initialize ⇒ Engine
constructor
A new instance of Engine.
- #start(exchange) ⇒ Object
- #stop ⇒ Object
Constructor Details
Class Method Details
.engines ⇒ Object
33 34 35 |
# File 'lib/hakuban/engine.rb', line 33 def self.engines @@descendants end |
.inherited(subclass) ⇒ Object
38 39 40 |
# File 'lib/hakuban/engine.rb', line 38 def self.inherited(subclass) @@descendants << subclass end |
Instance Method Details
#init(exchange) ⇒ Object
18 19 20 |
# File 'lib/hakuban/engine.rb', line 18 def init(exchange) raise "Hakuban::Engine::init is a pure virtual function, descendants should bring their own implementation" end |
#start(exchange) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/hakuban/engine.rb', line 11 def start(exchange) @contracts.concat([init(exchange)]) @contracts.flatten! @contracts.compact! @contracts.uniq! end |
#stop ⇒ Object
22 23 24 25 26 |
# File 'lib/hakuban/engine.rb', line 22 def stop @contracts.each { |contract| contract.drop } end |