Bug #6408 » fix.patch
lib/delegate.rb | ||
---|---|---|
self.__getobj__ == obj
|
||
end
|
||
def eql?(obj)
|
||
if obj.equal? self
|
||
__getobj__.eql? obj.__getobj__
|
||
else
|
||
__getobj__.eql?(obj)
|
||
end
|
||
end
|
||
def <=>(obj)
|
||
if obj.equal? self
|
||
__getobj__ <=> obj.__getobj__
|
||
else
|
||
__getobj__ <=> obj
|
||
end
|
||
end
|
||
#
|
||
# Returns true if two objects are not considered of equal value.
|
||
#
|
test/test_delegate.rb | ||
---|---|---|
assert_raise(NoMethodError, '[ruby-dev:40314]#5') {d.send(:delegate_test_private)}
|
||
end
|
||
end
|
||
class WidgetWrapperTests < MiniTest::Unit::TestCase
|
||
class Widget
|
||
end
|
||
class WidgetWrapper < DelegateClass(Widget)
|
||
end
|
||
attr_reader :widget, :wrapper
|
||
def setup
|
||
@widget = Widget.new
|
||
@wrapper = WidgetWrapper.new @widget
|
||
end
|
||
def test_equal_operator
|
||
assert_equal(widget == widget, wrapper == wrapper)
|
||
end
|
||
def test_equal
|
||
assert_equal(widget.equal?(widget), wrapper.equal?(wrapper))
|
||
end
|
||
def test_comparison
|
||
assert_equal(widget <=> widget, wrapper <=> wrapper)
|
||
end
|
||
def test_eql
|
||
assert_equal(widget.eql?(widget), wrapper.eql?(wrapper))
|
||
end
|
||
end
|