Скопируйте этот код из книги Programming Ruby и запустите его на rubyfiddle.com. Получаете синтаксическую ошибку вместо # => 21 ? Любая помощь приветствуется!
arr = [ 1, 1, 2, 3, 5, 8, 13, 21, 34 ]
res = arr.bsearch do |val|
case
when val < 19 then +1
when val > 23 then -1
else 0
end
end
res # => 21