class Collectr::Bag
Public Class Methods
new(collection=nil)
click to toggle source
# File lib/collectr/bag.rb, line 5 def initialize(collection=nil) @bag = Hash.new{ 0 } collection.each{ |item| self << item } if collection end
Public Instance Methods
<<(obj)
click to toggle source
# File lib/collectr/bag.rb, line 15 def <<(obj) add(obj) end
[](obj)
click to toggle source
# File lib/collectr/bag.rb, line 19 def [](obj) @bag[obj] end
add(obj)
click to toggle source
# File lib/collectr/bag.rb, line 10 def add(obj) @bag[obj] += 1 self end
as_sorted_counts()
click to toggle source
# File lib/collectr/bag.rb, line 49 def as_sorted_counts @bag.sort_by{ |key, cnt| -cnt } end
bag()
click to toggle source
# File lib/collectr/bag.rb, line 41 def bag @bag end
count()
click to toggle source
# File lib/collectr/bag.rb, line 31 def count sum = 0 each{ |key, val| sum += val } sum end
each(&block)
click to toggle source
# File lib/collectr/bag.rb, line 37 def each(&block) @bag.each{ |k,v| block.call k,v } end
empty?()
click to toggle source
# File lib/collectr/bag.rb, line 45 def empty? @bag.empty? end
keys()
click to toggle source
# File lib/collectr/bag.rb, line 23 def keys @bag.keys end
size()
click to toggle source
# File lib/collectr/bag.rb, line 27 def size @bag.size end
Private Instance Methods
initialize_copy(source)
click to toggle source
for cloning
Calls superclass method
# File lib/collectr/bag.rb, line 56 def initialize_copy(source) @bag = source.bag.clone super end