class Evnt::Handler

Handlers are used to listen one or more events and run tasks after their execution.

Attributes

event[R]

Attribute containings the event that notify the handler.

Private Class Methods

listen(event) click to toggle source

This function permits handler to listen specific event.

# File lib/evnt/handler.rb, line 77
def listen(event)
  event.add_handler(new)
end
on(event_name, &block) click to toggle source

This function sets the blocks executed for a specific event.

# File lib/evnt/handler.rb, line 82
def on(event_name, &block)
  @_current_event_name = event_name
  block.yield
end
to_manage_event(&block) click to toggle source

This function sets the manage event function for the event.

# File lib/evnt/handler.rb, line 93
def to_manage_event(&block)
  define_method("#{@_current_event_name}_manage_event", &block)
end
to_manage_reloaded_event(&block) click to toggle source

This function sets the manage reloaded event function for the event.

# File lib/evnt/handler.rb, line 98
def to_manage_reloaded_event(&block)
  define_method("#{@_current_event_name}_manage_reloaded_event", &block)
end
to_update_queries(&block) click to toggle source

This function sets the update queries function for the event.

# File lib/evnt/handler.rb, line 88
def to_update_queries(&block)
  define_method("#{@_current_event_name}_update_queries", &block)
end

Public Instance Methods

notify(event) click to toggle source

This function is called from an event to notify an handler.

Attributes

  • event - The event object that call the function.

# File lib/evnt/handler.rb, line 22
def notify(event)
  _init_handler_data(event)
  _run_handler_steps
end

Private Instance Methods

_init_handler_data(event) click to toggle source

This function initializes the handler required data.

# File lib/evnt/handler.rb, line 33
def _init_handler_data(event)
  @event = event
end
_run_handler_steps() click to toggle source

This function calls requested steps for the handler.

# File lib/evnt/handler.rb, line 38
def _run_handler_steps
  _safe_update_queries(@event.name)

  if event.reloaded?
    # manage event reloaded
    _safe_manage_reloaded_event(@event.name)
  else
    # manage normal event
    _safe_manage_event(@event.name)
  end
end
_safe_manage_event(event) click to toggle source
# File lib/evnt/handler.rb, line 64
def _safe_manage_event(event)
  manage_event = "#{event}_manage_event"
  return send(manage_event) if respond_to? manage_event
  nil
end
_safe_manage_reloaded_event(event) click to toggle source
# File lib/evnt/handler.rb, line 58
def _safe_manage_reloaded_event(event)
  manage_reloaded_event = "#{event}_manage_reloaded_event"
  return send(manage_reloaded_event) if respond_to? manage_reloaded_event
  nil
end
_safe_update_queries(event) click to toggle source

Safe defined functions:

# File lib/evnt/handler.rb, line 52
def _safe_update_queries(event)
  update_queries = "#{event}_update_queries"
  return send(update_queries) if respond_to? update_queries
  nil
end