blob: 429268ed15d3567874c98f196ba6f8c0f11d43bf (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
module Callback
module ModuleMethods
# For each event_name submitted, defines a callback event with this name.
# Client code can then register as a callback listener using object.event_name.
def callback_events(*event_names)
event_names.each do |event_name|
define_callback_event(event_name)
end
end
private
def define_callback_event(event_name)
module_eval <<-EOS
def #{event_name}(&block)
register_callback(:#{event_name}, &block)
end
EOS
end
end
end
class Module
include Callback::ModuleMethods
end
|