psyho / bogus

Fake library for Ruby
Other
359 stars 14 forks source link

Does not override the === operator #43

Closed voidlock closed 10 years ago

voidlock commented 10 years ago

I have added a test (327fbc904058476d7bfba7ef240e5cff1a5686b2) showing the failure. Typical use case can also be found in the commit message

Maybe there is a way to handle this already using the existing syntax. I could not find a solution in the docs though.

psyho commented 10 years ago

Thanks for the report. I'll make sure the fix makes it into the next release.

psyho commented 10 years ago

It turned out that we did implement everything that should be required to make this work, but MRI is not always polymorphic and instead of calling fake.kind_of?(klass), it called the default C implementation, so our #kind_of? method was never called. We fixed this by moving the Module#=== implementation to Ruby.