Sha256: 2cf9b76b3e17bd8dbbb90c384099385a26ff2e133072e2213b37cc6377309dbc
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
module Vedeu class Commands include Singleton class << self def instance(&block) @instance ||= new(&block) end alias_method :define, :instance # def define(name, klass, args = [], options = {}, &block) # instance.define(name, klass, args = [], options = {}) # end def execute(command = "") instance.execute(command) end def list instance.list end end def initialize(&block) @commands ||= { 'exit' => Proc.new { Exit.dispatch } } yield self if block_given? end def define(name, klass, args = [], options = {}) commands.merge!(Command.define(name, klass, args, options)) end alias_method :add, :define def execute(command) commands.fetch(command).call if exists?(command) end def list commands.inspect end private attr_accessor :commands attr_accessor :instance def exists?(command) commands.fetch(command, false) end end class Exit def self.dispatch :stop end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.0.4 | lib/vedeu/process/commands.rb |