Попытка использовать непродуманную структуру, которая собирает список результатов из переданного блока, эффективно это:
def sigh(&block)
r = (1..3).collect do |i|
yield(i)
end
# do something with r
end
Я хочу, чтобы блок, который я передаю, фильтровал элементы, но для пропустите итерацию коллекции, а не добавьте nil
к результатам, как next
(поскольку фреймворк их не уплотняет). Какой простой способ, кроме исправления гема?Т.е.
sigh {|i| next unless i == 1 } # results in [1,nil,nil] rather than just [1]