302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
|
# File 'lib/libGUIb16.rb', line 302
def __sends__ *args
args.each { |arg|
class_eval <<-CEEND, __FILE__, __LINE__ + 1
def on_#{arg}(&callback)
@#{arg}_observers ||= {}
@#{arg}_observers[caller[0]]=callback
return caller[0]
end
def del_#{arg}(id)
@#{arg}_observers ||= {}
return @#{arg}_observers.delete( id)
end
private
def #{arg} *the_args
@#{arg}_observers ||= {}
@#{arg}_observers.each { |caller, cb|
cb.call *the_args
}
end
CEEND
}
end
|