Module | Hobix::Enumerable |
In: |
lib/hobix/base.rb
|
Enumerable::each_with_neighbors from Joel Vanderwerf‘s enum extenstions.
# File lib/hobix/base.rb, line 200 200: def each_with_neighbors n = 1, empty = nil 201: nbrs = [empty] * (2 * n + 1) 202: offset = n 203: 204: each { |x| 205: nbrs.shift 206: nbrs.push x 207: if offset == 0 # offset is now the offset of the first element, x0, 208: yield nbrs # of the sequence from the center of nbrs, or 0, 209: else # if x0 has already passed the center. 210: offset -= 1 211: end 212: } 213: 214: n.times { 215: nbrs.shift 216: nbrs.push empty 217: if offset == 0 218: yield nbrs 219: else 220: offset -= 1 221: end 222: } 223: 224: self 225: end