Bug #140 » set_equal_value.patch
| lib/set.rb (Arbeitskopie) | ||
|---|---|---|
|
# Returns true if two sets are equal. The equality of each couple
|
||
|
# of elements is defined according to Object#eql?.
|
||
|
def ==(set)
|
||
|
equal?(set) and return true
|
||
|
set.is_a?(Set) && size == set.size or return false
|
||
|
hash = @hash.dup
|
||
|
set.all? { |o| hash.include?(o) }
|
||
|
def ==(other)
|
||
|
if self.equal?(other)
|
||
|
true
|
||
|
elsif other.instance_of?(self.class)
|
||
|
@hash == other.instance_variable_get(:@hash)
|
||
|
elsif other.is_a?(Set) && self.size == other.size
|
||
|
other.all? { |o| @hash.include?(o) }
|
||
|
else
|
||
|
false
|
||
|
end
|
||
|
end
|
||
|
def hash # :nodoc:
|
||