Method: OmfCommon::Eventloop.init
- Defined in:
- lib/omf_common/eventloop.rb
.init(opts, &block) ⇒ Object
opts:
:type - eventloop provider
:provider - custom provider (opts)
:require - gem to load first (opts)
:constructor - Class implementing provider
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/omf_common/eventloop.rb', line 30 def self.init(opts, &block) unless @@instance unless provider = opts[:provider] provider = @@providers[opts[:type].to_sym] end unless provider raise "Missing Eventloop provider declaration. Either define 'type' or 'provider'" end require provider[:require] if provider[:require] if class_name = provider[:constructor] provider_class = class_name.split('::').inject(Object) {|c,n| c.const_get(n) } inst = provider_class.new(opts, &block) else raise "Missing provider creation info - :constructor" end @@instance = inst end @@instance end |