celluloid/celluloid — pull request #130 by zanker (2012-12-07 23:21:06+00:00)
Title: Fixed handling non-AbortError errors in async call

The current way errors are handled in async calls will leave a confusing NoMethodError "cause" because it catches every exception, and not just AbortErrors. And only AbortErrors respond to `cause`.

A quick example of a missing method error that this pull request fixes:

class Foo
include Celluloid
end

foo = Foo.new
foo.async.bar

Will trigger a _NoMethodError: undefined method 'cause' for #_ error, rather than reporting that the method `bar` doesn't exist.

Pull request will fix it so in this case, it would respond with _NoMethodError: undefined method `bar' for #_