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