From: eastcoastcoder@... Date: 2006-02-13T09:03:25+09:00 Subject: Idiomatic ruby Very often I have a question method, which, in some cases, the caller would want to know why as well. Examples: def valid? end def abort? end Ruby does not allow subclassing true and false, so, if these methods return one of those, they can't return any additional info. But sometimes the caller needs additional info, as in: if !valid? logger.warn "Not valid: #{why not?}" What is the best way to handle this? I could have those methods set @instance_variables, but this seems a little hackish, and could introduce race conditions. Is there anyway to return false, "reason", or something of that sort? What is the preferred, idiomatic way of doing this?