Sha256: 1416233347a09f195e86d94ff7f46d82d272b5fb6c88168993cb245516b1665d

Contents?: true

Size: 1.54 KB

Versions: 25

Compression:

Stored size: 1.54 KB

Contents

Plugin Manager
==============

This is a plugin loader for Ruby. Features:

  * dependencies
  * versioning
  * multiple plugin sources
  * safe against plugins with broken code
  * plugin code reloading
  
It is not tied to Rubygems or Rails. A plugin is any directory with a plugin.rb file
inside that looks like this:
    
    Plugin.define do
      name         "Extras"
      version      "1.0"
      
      # the file to load to load the plugin. It is expected to be an .rb
      # file relative to this definition
      file         "extras"
      
      # this is an object that is defined by the plugin code
      object       "App::Extras"
      
      # Dependencies of the plugin
      dependencies "core", ">=1.0",
                   "fonts", ">=0.5, <1.9",
                   "debug", ">0, !=0.95, < 2"
    end

See the spec/fixtures/example/ directory for an example of a set of plugins.

This
directory of plugins can be loaded with:

    manager = PluginManager.new
    manager.add_plugin_source("spec/fixtures/example")
    manager.load

The code in the appropriate plugins will be loaded and you will then have available:
    
    # plugins that were loaded successfully
    manager.loaded_plugins
    
    # plugins that could not be loaded because of unmet dependencies, 
    # or because a more recent version was available.
    manager.unloaded_plugins
    
    # plugin.rb files that could not be read
    manager.unreadable_definitions
    
    # plugins that raised exceptions while being loaded
    manager.plugins_with_errors


License
=======

MIT

Version data entries

25 entries across 25 versions & 2 rubygems

Version Path
redcar-0.3.4 lib/plugin_manager/README.md
redcar-0.3.3 lib/plugin_manager/README.md
redcar-0.3.2dev lib/plugin_manager/README.md
plugin_manager-1.1 README.md
plugin_manager-1 README.md