module Gumdrop::Util::Eventable

Public Instance Methods

clear_events() click to toggle source
# File lib/gumdrop/util/eventable.rb, line 31
def clear_events
  @event_table ||= Onfire::EventTable.new
end
event_block(target) { |data| ... } click to toggle source
# File lib/gumdrop/util/eventable.rb, line 8
def event_block(target)
  fire "before_#{target}".to_sym
  data= HashObject.new
  result= data.payload= yield(data)
  fire target, data
  fire "after_#{target}".to_sym, data
  ret_val= data.return_value || result
  data.clear()
  ret_val
end
fire(event, data=nil) click to toggle source
# File lib/gumdrop/util/eventable.rb, line 19
def fire(event, data=nil)
  data= case
    when data.nil?
      HashObject.from site:Gumdrop.site
    when data.is_a?(Hash)
      HashObject.from(data).merge site:Gumdrop.site 
    else
      data
    end
  event_for(event, self, data).bubble!
end