Project

General

Profile

Bug #6408 » fix.patch

tenderlovemaking (Aaron Patterson), 05/07/2012 04:48 AM

View differences:

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
(1-1/3)