Пример кода в вашем вопросе не использует format
для чего-либо:
format((1..6).map { '%0.2X' % rand(256) } .join(':'))
format
вызывается с выводом:
(1..6).map { '%0.2X' % rand(256) } .join(':')
=> "AB:CD:EF:01:02:03"
то же самое, что делать что-то вроде:
format("AB:CD:EF:01:02:03")
, который по сути ничего не делает для строки.
Просто измените его на:
(1..6).map { '%0.2X' % rand(256) } .join(':')
Или:
format("%02X:%02X:%02X:%02X:%02X:%02X", *(1..6).map { rand(256) })
Или:
format((['%02X'] * 6).join(':'), *(1..6).map { rand(256) })
Вы получаете сообщение об ошибке, потому что смешиваете format
и %
(хотя format
ничего не делает).Рубокоп, вероятно, хочет, чтобы вы использовали один или другой, а не оба.