1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
class Method def to_proc m = self lambda { |*args, &b| m.call(*args, &b) } end def <<(other) ->(*args, &block) { call(other.call(*args, &block)) } end def >>(other) ->(*args, &block) { other.call(call(*args, &block)) } end end