Module: InputHandler

Defined in:
lib/terminal_hero/modules/input_handler.rb

Overview

A module containing methods for processing and validating input

Class Method Summary collapse

Class Method Details

.character_name_valid?(name) ⇒ Boolean

Check if a given character name is valid for creating or loading a character

Returns:

  • (Boolean)


21
22
23
24
25
26
27
28
# File 'lib/terminal_hero/modules/input_handler.rb', line 21

def self.character_name_valid?(name)
  return false unless name.is_a?(String)
  return false unless (3..15).include?(name.length)
  return false unless name.match?(/^\w*$/)
  return false if name.match?(/\s/)

  return true
end

.process_command_line_args(args, new_game_args: GameData::COMMAND_LINE_ARGUMENTS[:new_game], load_game_args: GameData::COMMAND_LINE_ARGUMENTS[:load_game]) ⇒ Object

Given an array of command-line arguments, return the associated action if any, or else return false



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/terminal_hero/modules/input_handler.rb', line 5

def self.process_command_line_args(
  args,
  new_game_args: GameData::COMMAND_LINE_ARGUMENTS[:new_game],
  load_game_args: GameData::COMMAND_LINE_ARGUMENTS[:load_game]
)
  return false unless args.is_a?(Array) && !args.empty?

  args.map(&:downcase)
  return :new_game if new_game_args.include?(args[0])
  return [:load_game, args[1]] if load_game_args.include?(args[0]) && args.length > 1
  return :load_game if load_game_args.include?(args[0])

  return false
end