Module: Shuffle

Included in:
Array
Defined in:
lib/shuffle.rb

Instance Method Summary collapse

Instance Method Details

#shuffle(generator = nil) ⇒ Object



18
19
20
# File 'lib/shuffle.rb', line 18

def shuffle ( generator=nil )
  dup.shuffle!(generator)
end

#shuffle!(generator = nil) ⇒ Object



10
11
12
13
14
15
16
# File 'lib/shuffle.rb', line 10

def shuffle! ( generator=nil )
  n = size
  n.times do |i|
    swap!(i, n.choose(generator))
  end
  self
end

#swap(i, j) ⇒ Object



26
27
28
# File 'lib/shuffle.rb', line 26

def swap ( i, j )
  dup.swap!(i, j)
end

#swap!(i, j) ⇒ Object



22
23
24
# File 'lib/shuffle.rb', line 22

def swap! ( i, j )
  self[i], self[j] = self[j], self[i]
end