Yes, that would be:
method = o.method(:my_method)
method.call(5)
# or method[5], or method.(5)
If you really want a "function" that you can call with parens: Kernel.define_method(:method_as_fun, &method)
(Definitely don't do that last bit in a real project...)And before someone criticizes Ruby for being inconsistent in how the method is called, Ruby isn't a callable oriented language [1]. The common case is calling methods, so the fact that you need to say `.call(5)` both makes it more consistent and makes real code more concise, especially when making DSLs where chaining is really useful.
1: https://yehudakatz.com/2010/02/21/ruby-is-not-a-callable-ori...
I think if you put more newlines in your code example (at least two per code-line) it might come through the HN formatting thing better?
Which should make the error message obvious. Ruby makes this syntax optional for readability purposes, which becomes obvious once you start going through real world ruby code.