module Nand::Plugin

Public Class Methods

extended(klass) click to toggle source
# File lib/nand/plugin.rb, line 7
def self.extended(klass)
  raise "Already Registered Name #{klass.plugin_name}" if extended_class_map.include? klass.plugin_name
  extended_class_map[klass.plugin_name] = klass
end
plugin!( name, *argv ) click to toggle source
# File lib/nand/plugin.rb, line 11
def self.plugin!( name, *argv )
  raise "Unregisterd #{name}" unless extended_class_map.include? name
  extended_class_map[name].executor(*argv)
end

Private Class Methods

extended_class_map() click to toggle source
# File lib/nand/plugin.rb, line 16
def self.extended_class_map
  @@extended_class_map ||= {}
end

Public Instance Methods

executor(*argv) click to toggle source
# File lib/nand/plugin.rb, line 6
def executor(*argv) ; raise "Not Implemented #{__method__} in #{self}"  end
plugin_name() click to toggle source
# File lib/nand/plugin.rb, line 4
def plugin_name; self.name end