Определение метода в одной строке следует выполнять только в документации, в противном случае разделите его на три строки:
def method
some code
end
Если вы обнаружите, что у вас много однострочных методов (например, getters & setters), может быть много методов метапрограммирования (например, использование define_method
) для уменьшения дублирования. Например, вы можете использовать :attr_accessor
для определения множества методов получения и установки:
class Person
# defines name, name=, age, age=, ...
attr_accessor :name, :age, :blood_type
end
Здесь - рубиновый форум, который говорит об этом. Я также настоятельно рекомендую прочитать Metaprogramming Ruby . В нем есть много полезных вещей, таких как 3 или 4 способа решения вашей проблемы, а также множество других техник для уменьшения дублирования.