class CodeMaker

Constants

CORRECT_ANSWER

Attributes

code[R]
verified_code[R]

Public Class Methods

new() click to toggle source
# File lib/codebreaker/codemaker.rb, line 8
def initialize
  @code = generate_random_code
  @verified_code = []
end

Public Instance Methods

check?() click to toggle source
# File lib/codebreaker/codemaker.rb, line 19
def check?
  verified_code == CORRECT_ANSWER
end
verify(user_code) click to toggle source
# File lib/codebreaker/codemaker.rb, line 13
def verify(user_code)
  return format(user_code) if validate_code(user_code)

  raise CustomErrors::CodeTypeError
end

Private Instance Methods

code_to_array(code) click to toggle source
# File lib/codebreaker/codemaker.rb, line 33
def code_to_array(code)
  code.to_s.chars.map(&:to_i)
end
format(user_code) click to toggle source
# File lib/codebreaker/codemaker.rb, line 29
def format(user_code)
  @verified_code = CodeFormatter.call(code.dup, code_to_array(user_code))
end
generate_random_code() click to toggle source
# File lib/codebreaker/codemaker.rb, line 25
def generate_random_code
  4.times.map { rand(1..6) }
end
validate_code(code) click to toggle source
# File lib/codebreaker/codemaker.rb, line 37
def validate_code(code)
  code = code_to_array(code)
  validate_max_length(code, 4) &&
    validate_min_length(code, 4) &&
    code.all? { |number| validate_range(number, 1, 6) }
end