Sha256: 5291c298844817b74fa541da4f2b9dd1bfc2fd3489112d495b2951c17e9eb5de

Contents?: true

Size: 1 KB

Versions: 3

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

module CodebreakerKirill
  class Validations
    include Settings

    def self.validate_name(name)
      raise "Name shouldn't be empty" if name.empty?
      raise 'Name should be string' if name.class != String
      raise 'Name should be at least 3 characters long' if name.length < Settings::NAME_MIN_LENGTH
      raise "Name shouldn't be more than 20 characters long" if name.length > Settings::NAME_MAX_LENGTH
    end

    def self.validate_guess(guess)
      raise "Guess shouldn't be empty" if guess.empty?
      raise 'Guess should be 4 characters' if guess.length < Settings::GUESS_LENGTH
      raise 'Guess shouldnt be more than 4 characters long' if guess.length > Settings::GUESS_LENGTH
    end

    def self.validate_difficulty(difficulty)
      raise "Input shouldn't be empty" if difficulty.empty?
      return if Settings::DIFFICULTY.keys.include?(difficulty)

      raise "You should enter one of the following options: #{Settings::DIFFICULTY.keys.join(', ')}"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
codebreaker_kirill-2.0.0 lib/codebreaker_kirill/validations.rb
codebreaker_kirill-1.3.7 lib/codebreaker_kirill/validations.rb
codebreaker_kirill-1.3.6 lib/codebreaker_kirill/validations.rb