Module: ClasslessMud::Commands

Defined in:
lib/classless_mud/commands.rb,
lib/classless_mud/commands/eat.rb,
lib/classless_mud/commands/get.rb,
lib/classless_mud/commands/say.rb,
lib/classless_mud/commands/who.rb,
lib/classless_mud/commands/chat.rb,
lib/classless_mud/commands/look.rb,
lib/classless_mud/commands/move.rb,
lib/classless_mud/commands/quit.rb,
lib/classless_mud/commands/dance.rb,
lib/classless_mud/commands/score.rb,
lib/classless_mud/commands/whisper.rb,
lib/classless_mud/commands/commands.rb,
lib/classless_mud/commands/character.rb,
lib/classless_mud/commands/inventory.rb,
lib/classless_mud/commands/bad_command.rb

Defined Under Namespace

Modules: Admin Classes: BadCommand, Character, Chat, Commands, Dance, Eat, Get, Inventory, Look, Move, Quit, Say, Score, Whisper, Who

Constant Summary collapse

ALIASES_TO_COMMANDS_MAP =
{
  'north' => Move,
  'west' => Move,
  'south' => Move,
  'east' => Move
}
CONNECTORS =
['to']

Class Method Summary collapse

Class Method Details

.admin_commandsObject



26
27
28
29
30
# File 'lib/classless_mud/commands.rb', line 26

def self.admin_commands
  ClasslessMud::Commands::Admin.constants
    .select { |c| Class === ClasslessMud::Commands::Admin.const_get(c) }
    .map { |c| ClasslessMud::Commands::Admin.const_get(c) }
end

.all_commandsObject



16
17
18
# File 'lib/classless_mud/commands.rb', line 16

def self.all_commands
  regular_commands + admin_commands
end

.parse(data) ⇒ Object



10
11
12
13
14
# File 'lib/classless_mud/commands.rb', line 10

def self.parse data
  command = data.split[0]
  return ALIASES_TO_COMMANDS_MAP[command] if ALIASES_TO_COMMANDS_MAP.has_key?(command)
  all_commands.detect(-> { BadCommand }) { |c| c.name.demodulize.to_s.downcase == command }
end

.regular_commandsObject



20
21
22
23
24
# File 'lib/classless_mud/commands.rb', line 20

def self.regular_commands
  ClasslessMud::Commands.constants
    .select { |c| Class === ClasslessMud::Commands.const_get(c) }
    .map { |c| ClasslessMud::Commands.const_get(c) }
end