Method: Chione::System.on

Defined in:
lib/chione/system.rb

.on(event_name, &block) ⇒ Object

Declare a block that is called once whenever an event matching event_name is broadcast to the World.

Raises:

  • (LocalJumpError)


82
83
84
85
86
87
88
89
90
91
92
# File 'lib/chione/system.rb', line 82

def self::on( event_name, &block )
	raise LocalJumpError, "no block given" unless block
	raise ArgumentError, "callback has wrong arity" unless block.arity >= 2 || block.arity < 0

	method_name = "on_%s_event" % [ event_name.tr('/', '_') ]
	self.log.debug "Making handler method #%s for %s events out of %p" %
		[ method_name, event_name, block ]
	define_method( method_name, &block )

	self.event_handlers << [ event_name, method_name ]
end