#ruby #rubocop
Вопрос:
def result_p3(high, low)
arr_ind = []
((1..31).each { |n| arr_ind << n })
(0..30).each do |i|
puts " #{arr_ind[i]}" " #{' ' * high[i].to_i} ".red "#{high[i].to_i}C "
puts " #{arr_ind[i]}" " #{' ' * low[i].to_i} ".blue "#{low[i].to_i}C "
end
end
Ответ №1:
RuboCop довольно ясно понимает, в чем проблема: ваш метод слишком велик. Вы можете:
- реорганизуйте свой код, чтобы он соответствовал стандартам кодирования вашей команды, что является рекомендуемым подходом;
- обновите файл todo, чтобы ошибка не отображалась, пока вы не будете готовы ее исправить; или
- отключите cop для этого метода, чего вам определенно не следует делать, если вы не понимаете, почему RuboCop сообщает вам, что ваш код не идеален.
RuboCop — это руководство по компоновке и стилю. Это не всегда правильно, но в данном случае это так. Ваш метод нуждается в рефакторинге, поэтому либо сделайте это, либо отложите его исправление, но определенно относитесь к нему как к запаху кода.
Ответ №2:
arr_ind
является избыточным, в нем содержатся числа от 1 до 31. Для любого значения x
, arr_ind[x] == x 1
. Вместо #{arr_ind[i]}
этого вы могли бы просто #{i 1}
. И, конечно же, удалите все, что связано с arr_ind
.