drbrain (Eric Hodel) wrote:
> Issue #6180 has been updated by drbrain (Eric Hodel).
> 
> Why do you need to convert objects to boolean values?

1. To avoid breaking encapsulation.  For example:

  def connected?
    !! @sv
  end

In the above, @sv is an internal resource the caller is never intended
to access.


2. To avoid looking obnoxious in logging statements.

  @logger.trace("#{self.class.name} - #{__method__}: forcing reconnect, current status: connected=#{client.connected?.inspect}")

I want that to print: "current status: connected=false"

Not: "current status: connected=<page of dumped data of object internals>"


Personally I don't mind !! as once one learns the idiom, its intent
would seem to be fairly unambiguous.


Regards,

Bill