module Rebidux::Util
Public Class Methods
compose()
click to toggle source
# File lib/rubidux/util.rb, line 3 def compose -> *funcs { if funcs.size == 1 funcs[0] else last = funcs[funcs.size-1] rest = funcs[0..funcs.size-2].reverse -> (*args) { rest.reduce(last.(*args)) { |composed, f| f.(composed) } } end } end
Private Instance Methods
compose()
click to toggle source
# File lib/rubidux/util.rb, line 3 def compose -> *funcs { if funcs.size == 1 funcs[0] else last = funcs[funcs.size-1] rest = funcs[0..funcs.size-2].reverse -> (*args) { rest.reduce(last.(*args)) { |composed, f| f.(composed) } } end } end