Class: SortableSet

Inherits:
Set
  • Object
show all
Defined in:
lib/include/set.rb

Instance Method Summary collapse

Methods inherited from Set

#==, #each, #include?, #inspect, #size, #to_a

Constructor Details

#initialize(ary = [], &compare) ⇒ SortableSet

Returns a new instance of SortableSet.



51
52
53
54
# File 'lib/include/set.rb', line 51

def initialize(ary = [], &compare)
	@set = ary.uniq.sort(&compare)
	@compare = compare
end

Instance Method Details

#add(*items) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/include/set.rb', line 56

def add(*items)
	items.each do |i|
		j = Bisect.bisect_left(@set, i, &@compare)
		@set.insert(j, i) unless @set[j] == i
	end
	return self
end

#dupObject



64
65
66
# File 'lib/include/set.rb', line 64

def dup
	self.class.new(@set.dup, &@compare)
end