DZone Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Snippets has posted 5883 posts at DZone. View Full User Profile

[ruby] Plugin Structure

02.21.2008
| 3285 views |
  • submit to reddit
        plugin structure sorta thing. Use inherited to concatenate all plugins to a library in a Plugins constant in said library.

class Library
  Plugins = []
  
  def initialize#(...)
    Plugins.each do |plugin|
      # Here you can run a certain class method or grab some data from each class
    end
  end
  
  # ...
end

class LibraryPlugin
  # ...
  
  def self.inherited(sub); Library::Plugins << sub; end
end

class LibraryFooer < LibraryPlugin
  
end
class LibraryBarer < LibraryPlugin
  
end

Library::Plugins.inspect #=> [LibraryFooer, LibraryBarer]