Вы должны создать Proc
объект, если вы хотите функциональный объект
f = Proc.new { |x| x * 2 }
Вы вызываете функцию, используя
f.call(8) # => 16
или
f[8] # => 16
вы даже можете использовать этот функциональный объект в операции map
[1, 2, 3, 4, 5].map(&f) # => [2, 4, 6, 8, 10]