class Splashy::Bucket

Private: Collects elements and maintains a count.

Attributes

name[R]

Public Class Methods

new( name ) click to toggle source
# File lib/splashy/bucket.rb, line 8
def initialize( name )
  @name = name
  @elements = []
end

Public Instance Methods

<<( element ) click to toggle source
# File lib/splashy/bucket.rb, line 13
def <<( element )
  @elements << element
end
count() click to toggle source
# File lib/splashy/bucket.rb, line 37
def count
  @elements.count
end
elements( count = nil ) click to toggle source
# File lib/splashy/bucket.rb, line 17
def elements( count = nil )
  if count
    @elements[0, count]
  else
    @elements
  end
end
empty?() click to toggle source
# File lib/splashy/bucket.rb, line 33
def empty?
  self.count == 0
end
random_elements( count = nil ) click to toggle source
# File lib/splashy/bucket.rb, line 25
def random_elements( count = nil )
  if @elements.respond_to?( :sample )
    @elements.sample( count )
  else
    count ? @elements.sort_by{ rand }[0, count] : @elements.sort_by{ rand }
  end
end