# lib/link_bar.rb require 'singleton' class LinkBar include Singleton class << self def register(callback) instance.register(callback) end def query(link_name) instance.query(link_name) end end def initialize @callbacks = [] end def register(callback) @callbacks << callback end def query(link_name) returning Array.new do |arr| @callbacks.each do |callback| arr << callback.call(link_name) end end.flatten.uniq end end # vendor/plugins//init.rb LinkBar.register(.method(:link_generation)) # vendor/plugins//lib/.rb class def self.link_generation(link_name) case link_name when "boards" [boards_url, "#{link_name} Boards"] when "other" [other_url, "#{link_name} Other"] end end end # app/controllers/some_controller.rb class SomeController before_filter :find_board_links def find_board_links @board_links = LinkBar.query("boards") end end