def get_code(val)
if [31, 32].include?(val) then 'E1'
else ['E2', 'E2', 'E1', 'D', 'C2', 'C1', 'B2', 'B1', 'A2', 'A1'][(val-1)/10] || 'A0'
end
end
Я не уверен, как вы справляетесь с 0, негативами. Похоже, система оценок. Если в моем коде есть ошибка, думаю, вы сможете исправить ее.
Обновление
Другая версия:
def get_code(val)
val += 1 if 0 == val
val -= 2 if [31, 32].include?(val)
['E2', 'E2', 'E1', 'D', 'C2', 'C1', 'B2', 'B1', 'A2', 'A1'][(val-1)/10] || 'A0'
end