File: README

classx-pluggable

plagger‘s like plugin system for classx based applicaton

Synopsis

in your context class.

  require 'classx'
  require 'classx/pluggable'
  class YourApp
    include ClassX
    include ClassX::Pluggable

    def run
      call_event("SETUP", {})
      # you app
      call_event("TEARDOWN", {})
    end
  end

in your plugin class

  require 'classx'
  require 'classx/pluggable'
  class YourApp
    class Plugin
      include ClassX
      include ClassX::Pluggable::Plugin

      class SomePlugin < Plugin
        def register
          add_event("SETUP", :on_setup)
        end

        def on_setup param
          # param is Hash
          # hooked setup
        end
      end
    end
  end

or it‘s easy to defining with ClassX::Pluggable::Plugin::AutoRegister

  class YourApp
    class Plugin
      include ClassX
      include ClassX::Pluggable::Plugin
      include ClassX::Pluggable::Plugin::AutoRegister

      class SomePlugin < Plugin
        def on_setup param
          # do some thing.
        end
      end
    end
  end

and, on your start up script.

  app = YourApp.new
  app.load_plugins([
    { :module => YourApp::Plugin::SomePlugin, :config => {} },
  ])

  app.run

Description

Installation

Archive Installation

        rake install

Gem Installation

        gem install classx-pluggable

Features/Problems

CAVEAT: this project is early development. API may be vary in future.

Copyright

Author:Keiji, Yoshimi <walf443 at gmail.com>
Copyright:Copyright (c) 2008 Keiji, Yoshimi
License:you can redistribute it and/or modify it under the same terms as Ruby itself.