module CyberarmEngine::Event

Public Instance Methods

event(event) click to toggle source
# File lib/cyberarm_engine/ui/event.rb, line 28
def event(event)
  @event_handler ||= {}
  @event_handler[event] ||= []
end
publish(event, *args) click to toggle source
# File lib/cyberarm_engine/ui/event.rb, line 13
def publish(event, *args)
  raise ArgumentError, "#{self.class} does not handle #{event.inspect}" unless @event_handler.include?(event)

  return unless enabled?

  return :handled if respond_to?(event) && (send(event, self, *args) == :handled)

  @event_handler[event].reverse_each do |handler|
    return :handled if handler.call(self, *args) == :handled
  end

  parent.publish(event, *args) if parent
  nil
end
subscribe(event, method = nil, &block) click to toggle source
# File lib/cyberarm_engine/ui/event.rb, line 3
def subscribe(event, method = nil, &block)
  handler = method || block
  @event_handler[event] << handler

  Subscription.new(self, event, handler)
end
unsubscribe(subscription) click to toggle source
# File lib/cyberarm_engine/ui/event.rb, line 10
def unsubscribe(subscription)
end