Sha256: b780f10de577f89b4166dc0c6a6f5b3cd5e7390219ed894fe176b90d9e75abe2

Contents?: true

Size: 891 Bytes

Versions: 3

Compression:

Stored size: 891 Bytes

Contents

# This adds the console commands for the talia console

module TaliaCommandLine

  # Array with command descriptions
  @console_commands = Array.new

  # Add a new console command
  def self.console(command, &command_block)
    # Add the description
    description = @desc ? @desc : "Generic command: #{command}"
    @desc = nil
    @console_commands << [command.to_s, description]

    command = command.to_sym

    (class << MAIN_OBJECT; self; end).class_eval do
      define_method(command, command_block)
    end
  end

  # Add an instance variable
  def self.to_var(name, value)
    (class << MAIN_OBJECT; self; end).class_eval do
      raise(RuntimeError, "Method already defined: #{name}") if(method_defined?(name)) 
      define_method(name) { value }
    end
    value
  end
  
  # Returns the defined console commands
  def self.console_commands
    @console_commands
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
talia_core-0.4.2 lib/talia_cl/commands/talia_console/console_commands.rb
talia_core-0.4.1 lib/talia_cl/commands/talia_console/console_commands.rb
talia_core-0.4.0 lib/talia_cl/commands/talia_console/console_commands.rb