Sha256: 83cba338aff412556faed061890c719d8a130cd3112fb1cae56c344112cdc199
Contents?: true
Size: 935 Bytes
Versions: 4
Compression:
Stored size: 935 Bytes
Contents
require 'darkext/numeric' require 'darkext/symbol' class Array # Rotates the array left by n elements def rotate(n = 1) return if self.size.zero? n.times { self.push(self.shift) } end # Rotates the array right by n elements def rotate_reverse(n = 1) return if self.size.zero? n.times { self.unshift(self.pop) } end # Sums the array def sum self.inject(:+) end # Finds the product of the array def product self.inject(:*) end # Collects the squares of each value in the array def squares self.map(&:square) end # Destructively collects the squares def squares! self.map!(&:square) end # Finds the sum of squares of the array def sum_of_squares self.squares.sum end # Picks a random value from the array def random self[rand(self.size)] end alias :pick :random # Randomizes the array def randomize self.sort_by { rand } end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
darkhelmet-darkext-0.0.3 | lib/darkext/array.rb |
darkhelmet-darkext-0.1.0 | lib/darkext/array.rb |
darkhelmet-darkext-0.2.0 | lib/darkext/array.rb |
darkhelmet-darkext-0.3.0 | lib/darkext/array.rb |