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