# File lib/backports/1.9.2/array.rb, line 32 def repeated_combination(num) return to_enum(:repeated_combination, num) unless block_given? num = Backports.coerce_to_int(num) if num <= 0 yield [] if num == 0 else indices = Array.new(num, 0) indices[-1] = size while dec = indices.find_index(&:nonzero?) indices[0..dec] = Array.new dec+1, indices[dec]-1 yield values_at(*indices) end end self end