4
include ::Iterator(StaticArray(T, N))
9
16
def initialize(@iter)
12
{% raise "NGrams must be at least 2 long" if N < 2 %}
16
39
return Iterator.stop if @end
17
result = uninitialized StaticArray(T, N)
19
12
result[0] = overlap
20
12
(1...N).each do |i|
21
32
case value = @iter.next
24
11
(i...N).each do |j|
25
13
result[j] = bumper_item T
28
21
result[i] = @overlap = value
33
16
case value = @iter.next
38
12
result[0] = bumper_item T
39
12
result[1] = @overlap = value
41
12
(2...N).each do |i|
42
14
case value = @iter.next
46
2
result[j] = bumper_item T
49
12
result[i] = @overlap = value