Class: GameShuffleCards::ValidateGame

Inherits:
Object
  • Object
show all
Defined in:
lib/game_shuffle_cards/validate_game.rb

Overview

validation to secure the inputs of the Game

Author:

  • Diego Hernán Piccinini Lagos

Class Method Summary collapse

Class Method Details

.parse_and_validate(players, cards_per_player) ⇒ Object

Given two values String or Integer, checks whether they are valid in a context Game then return the integers values or raise an exception

Parameters:

  • players (String|Integer)
  • cards_per_player (String|Integer)

Returns:

  • players and cards per player [Array] with integers values of each one

Raises:



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/game_shuffle_cards/validate_game.rb', line 12

def parse_and_validate(players, cards_per_player)
  begin
    players = Integer(players)
    cards_per_player= Integer(cards_per_player)

  rescue
    raise TypeError
  end
  raise GameShuffleCards::ToManyPlayersError if players > GameShuffleCards::Game::MAXIMUN_PLAYERS
  raise GameShuffleCards::NotEnoughPlayersError if players < GameShuffleCards::Game::MINIMUN_PLAYERS
  raise GameShuffleCards::ToManyCardsPerPlayerError if cards_per_player > GameShuffleCards::Game::TOTAL_CARDS
  raise GameShuffleCards::NotEnoughCardsPerPlayersError if cards_per_player < GameShuffleCards::Game::MINIMUN_CARDS
  raise GameShuffleCards::TooManyCardsDemandedError if (players * cards_per_player) > GameShuffleCards::Game::TOTAL_CARDS
  [players,cards_per_player]
end

.parse_and_validate_players(players) ⇒ Object

Validates whether the amount and type of players are right. Otherwise raise an exception

Parameters:

  • players (String|Integer)

Returns:

  • number of players [Integer]

Raises:



31
32
33
34
35
36
37
38
39
40
# File 'lib/game_shuffle_cards/validate_game.rb', line 31

def parse_and_validate_players(players)
  begin
    players = Integer(players)
  rescue
    raise TypeError
  end
  raise GameShuffleCards::ToManyPlayersError if players > GameShuffleCards::Game::MAXIMUN_PLAYERS
  raise GameShuffleCards::NotEnoughPlayersError if players < GameShuffleCards::Game::MINIMUN_PLAYERS
  players
end