Sha256: fbb2ba38f6a10cbe3798beeb95693c63fd8c5bbc6312286ceaec61c1e7a21173
Contents?: true
Size: 984 Bytes
Versions: 6
Compression:
Stored size: 984 Bytes
Contents
class CodeFormatter attr_reader :result def self.call(*args) new(*args).call end def initialize(maker_code = [], user_code = []) @maker_code = maker_code @user_code = user_code @result = [] end def call format_plus.format_minus @result end def format_plus @user_code.zip(@maker_code).each_with_index do |numbers, index| next unless numbers.first == numbers.last @result << '+' clear_number(@maker_code, index) clear_number(@user_code, index) end code_compact self end def format_minus @user_code.each do |number| next unless @maker_code.include?(number) @result << '-' clear_number(@maker_code, @maker_code.index(number)) clear_number(@user_code, @user_code.index(number)) end code_compact self end private def code_compact @user_code.compact! @maker_code.compact! end def clear_number(array, index) array[index] = nil end end
Version data entries
6 entries across 6 versions & 1 rubygems