module Aggro::EventDSL
Public: Adds a DSL defining event handlers.
Public Instance Methods
handles_event?(event_name, namespace = nil)
click to toggle source
# File lib/aggro/event_dsl.rb, line 6 def handles_event?(event_name, namespace = nil) self.class.handles_event?(event_name, namespace) || \ namespace?(namespace) && event_methods[namespace].include?(event_name) end
Private Instance Methods
event_methods()
click to toggle source
# File lib/aggro/event_dsl.rb, line 13 def event_methods @event_methods ||= {} end
events(namespace = nil, &block)
click to toggle source
# File lib/aggro/event_dsl.rb, line 22 def events(namespace = nil, &block) new_methods = BlockHelper.method_definitions(&block) event_methods[namespace] ||= Set.new new_methods.each { |method| event_methods[namespace] << method } class_eval(&block) class_eval do new_methods.each do |method| alias_method "#{namespace}_#{method}", method remove_method method end end end
namespace?(namespace)
click to toggle source
# File lib/aggro/event_dsl.rb, line 17 def namespace?(namespace) !event_methods[namespace].nil? end