Class: Range

Inherits:
Object
  • Object
show all
Defined in:
lib/five_leaves/range_util.rb

Instance Method Summary collapse

Instance Method Details

#*(n) ⇒ Object



21
22
23
# File 'lib/five_leaves/range_util.rb', line 21

def *(n)
  (size * n).times.lazy_map { |x| first + (x % size) }
end

#**(n) ⇒ Object



25
26
27
# File 'lib/five_leaves/range_util.rb', line 25

def **(n)
  (size * n).times.lazy_map { |x| first + (x / n) }
end

#pair_with(range) ⇒ Object



29
30
31
# File 'lib/five_leaves/range_util.rb', line 29

def pair_with(range)
  (self * range.size).lazy_zip(range ** self.size)
end

#pairsObject



17
18
19
# File 'lib/five_leaves/range_util.rb', line 17

def pairs
  stutter.lazy_zip squared
end

#sizeObject



5
6
7
# File 'lib/five_leaves/range_util.rb', line 5

def size
  last - first + 1
end

#squaredObject



13
14
15
# File 'lib/five_leaves/range_util.rb', line 13

def squared
  (size * size).times.lazy_map { |x| first + (x % size) }
end

#stutterObject



9
10
11
# File 'lib/five_leaves/range_util.rb', line 9

def stutter
  (size * size).times.lazy_map { |x| first + (x / size) }
end