Посмотрел на строку кода в проекте и подумал — нечитабельно, нужно переписать как цепочку методов:
topic = ((ktp.get_topics(name) || [])[count]) || ""
Запилил обёртку:
class Object
def or_else(v = nil)
if nil?
if block_given?
yield(v)
else
v
end
else
self
end
end
end
Исправил код:
topic = ktp.get_topics(name).or_else{[]}[count].or_else{""}
Типа, теперь всё читабельно.
Неужели такого удобного метода нет в стандартной библиотеке? Или он есть, но это я до сих пор не знаю?