Я пишу рубиновую программу, однако мой код начинает чувствовать себя слишком толстым и неуклюжим. Я действительно хочу реорганизовать код, но я не знаю, где я могу, не говоря уже о том, с чего начать. Ниже перечислены самые большие методы в моей программе, поэтому я считаю, что могу реорганизовать их лучше. Кто-нибудь есть какие-либо советы или рекомендации для рефакторинга следующие методы: рубинЛюбые предложения по реорганизации этого кода Ruby?
def project_name
project_object = fetch(:payload).fetch(:project)
client_object = fetch(:payload).fetch(:client)
project_name =
if project_object == nil
""
else
project_object.fetch(:name)
end
client_name =
if client_object == nil
""
else
client_object.fetch(:name)
end
if project_name.length > 0 && client_name.length > 0
"Project: #{project_name}(#{client_name})"
elsif project_name.length > 0 && client_name.length == 0
"Project: #{project_name}"
elsif project_name.length == 0 && client_name.length > 0
"Client: #{client_name}"
else
""
end
end
и ...
def duration_formatter(date_1, date_2)
date_1 = date_1.to_time
date_2 = date_2.to_time
if date_1.year == date_2.year
if date_1.month == date_2.month
if date_1.day == date_2.day
"#{date_1.strftime('%-d %b %Y')}"
else
"#{date_1.strftime('%-d')} - #{date_2.strftime('%-d %b %Y')}"
end
else
"#{date_1.strftime('%-d %b')} - #{date_2.strftime('%-d %b %Y')}"
end
else
"#{date_1.strftime('%-d %b %Y')} - #{date_2.strftime('%-d %b %Y')}"
end
конец
Любые советы или советы будут в значительной степени оценили