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