Sha256: db451194956278c04b7afd6fe6d94088e9594cbb0f3dcf18d3b254c1aadb31cd

Contents?: true

Size: 433 Bytes

Versions: 15

Compression:

Stored size: 433 Bytes

Contents

class Proc
  # C++ TR1 style bind
  # use _#{n} for placeholders
  #  _1 => 1st arg
  #  _2 => 2nd arg
  #  ...and so on
  def bind *args
    lambda{ |*new_args|
      self[*(args.map{ |arg|
        if (arg.kind_of? Symbol) && arg.to_s =~ /^_(\d+)$/
          # is placeholder
          new_args[$1.to_i-1]
        else
          # is not placeholder
          arg
        end
      } + new_args).first(self.arity)]
    }
  end
end

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
godfat-ludy-0.1.13 lib/ludy/proc/bind.rb
ludy-0.1.15 lib/ludy/proc/bind.rb
ludy-0.1.11 lib/ludy/proc/bind.rb
ludy-0.1.1 lib/ludy/proc/bind.rb
ludy-0.1.10 lib/ludy/proc/bind.rb
ludy-0.1.0 lib/ludy/proc/bind.rb
ludy-0.1.2 lib/ludy/proc/bind.rb
ludy-0.1.13 lib/ludy/proc/bind.rb
ludy-0.1.9 lib/ludy/proc/bind.rb
ludy-0.1.4 lib/ludy/proc/bind.rb
ludy-0.1.3 lib/ludy/proc/bind.rb
ludy-0.1.7 lib/ludy/proc/bind.rb
ludy-0.1.5 lib/ludy/proc/bind.rb
ludy-0.1.6 lib/ludy/proc/bind.rb
ludy-0.1.8 lib/ludy/proc/bind.rb