From: Tim Waters Date: 2006-12-24T01:02:47+09:00 Subject: Help with a ruby idiom From the O'Reilly Cookbook there is code that keeps call functions in a hash as a subscriber/listener type pattern. What I don't understand (or I don't understand how it works is the line: (@EventDispatcher_listeners[event] ||= []) << callback module EventDispatcher def setup_listeners @EventDispatcher_listeners = {} end def subscribe(event, &callback) (@EventDispatcher_listeners[event] ||= []) << callback end protected def notify(event, *args) if @EventDispatcher_listeners[event] @EventDispatcher_listeners[event].each do |m| m.call(*args) if m.respond_to? :call end end return nil end end -- Posted via http://www.ruby-forum.com/.