class Susanin::Pattern
Public Class Methods
new(arr)
click to toggle source
# File lib/susanin/pattern.rb, line 8 def initialize(arr) @arr = Array.wrap(arr) end
Public Instance Methods
arr_size()
click to toggle source
# File lib/susanin/pattern.rb, line 19 def arr_size @arr.size end
each(&block)
click to toggle source
# File lib/susanin/pattern.rb, line 12 def each(&block) shifts.map do |s| a = @arr.slice(*s) block.call(a.size == 1 ? a[0] : a) end end
inspect()
click to toggle source
# File lib/susanin/pattern.rb, line 31 def inspect map{|i|i} end
shifts()
click to toggle source
# File lib/susanin/pattern.rb, line 23 def shifts arr_size.downto(1).flat_map do |shift| (0).upto(arr_size-shift).map do |i| [0+i, shift] end end end