class Neighborparrot::Reactor

Reactor class

Public Class Methods

new() click to toggle source

Start the reactor in a new thead and prepare

# File lib/neighborparrot/reactor.rb, line 32
def initialize
  reactor_start
  define_event_helpers
end

Public Instance Methods

define_event_helpers() click to toggle source

generate events helpers for instances This define tho methods: on_event(&block): Setup a block for the event trigger_event(*args): Trigger the event

# File lib/neighborparrot/reactor.rb, line 41
def define_event_helpers
  @event_block = {}
  EVENTS.each do |event|
    clazz = class << self; self; end
    clazz.send :define_method, "on_#{event}" do |&block|
      @event_block[event] = block
    end
    clazz.send :define_method, "trigger_#{event}" do |*args|
      @event_block[event].call *args if @event_block[event]
    end
  end
end