я получаю ошибку ошибки ABC от rubocop, как я могу ее удалить

#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 довольно ясно понимает, в чем проблема: ваш метод слишком велик. Вы можете:

  1. реорганизуйте свой код, чтобы он соответствовал стандартам кодирования вашей команды, что является рекомендуемым подходом;
  2. обновите файл todo, чтобы ошибка не отображалась, пока вы не будете готовы ее исправить; или
  3. отключите cop для этого метода, чего вам определенно не следует делать, если вы не понимаете, почему RuboCop сообщает вам, что ваш код не идеален.

RuboCop — это руководство по компоновке и стилю. Это не всегда правильно, но в данном случае это так. Ваш метод нуждается в рефакторинге, поэтому либо сделайте это, либо отложите его исправление, но определенно относитесь к нему как к запаху кода.

Ответ №2:

arr_ind является избыточным, в нем содержатся числа от 1 до 31. Для любого значения x , arr_ind[x] == x 1 . Вместо #{arr_ind[i]} этого вы могли бы просто #{i 1} . И, конечно же, удалите все, что связано с arr_ind .