class LinkBar include Singleton def initialize @bars = Hash.new @bars.default = [] end def register(linkbar_name, class_name, callback_method) @bars[linkbar_name] << {:class => class_name, :method => callback_method} end def query(linkbar_name) returning Array.new do |links| @bars[linkbar_name].each do |callback| links.concat callback[:class].send(callback[:method]) end end end class << self def register(*args) instance.register(*args) end def query(*args) instance.query(*args) end end end