Но была одна вещь, которую пальцы всегда отказывались писать.
Это код вида
def ugly
results = {}
[:x, :y, :z].each do |letter|
results[letter] = rand(100)
end
results
end
Не по-рубически это как то :).
Оказывается DHH о нас позаботился и в active support есть такая приятная штучка returning.
def sexy
returning({}) do |results|
[:x, :y, :z].each do |letter|
results[letter] = rand(100)
end
end
end
Другого названия кроме как секси и не подберешь :)
Да, и не пытайтесь это использовать не с ссылочными типами - ничего не выйдет.
Ибо выглядит returrning следующим образом
# File vendor/rails/activesupport/
#lib/active_support/core_ext/object/misc.rb, line 27
def returning(value)
yield(value)
value
end
Комментариев нет:
Отправить комментарий