def inspect
      methods = (self.public_methods - Object.methods)
                    .sort
                    .map {|m| ':' + m.to_s}
                    .join(', ')

      "#<Smartsheet::Client:#{self.object_id} #{methods}>"
    end
def inspect
      methods = (self.public_methods - Object.methods)
                    .sort
                    .map {|m| ':' + m.to_s}
                    .join(', ')

      "#<Smartsheet::Client:#{self.object_id} #{methods}>"
    end
@param token [String] access token for the API; if nil or empty, uses environment variable
   `SMARTSHEET_ACCESS_TOKEN`
 @param logger [Logger] a logger to which request and response info will be recorded
 @param log_full_body [Boolean] when true, request and response bodies will not be truncated in
   the logs
 @param user_agent [String] the name of the application, sent as part of the user agent for
   requests; defaults as the name of the application
 @param json_output [Boolean] when true, endpoints return raw JSON strings instead of hashes
 @param assume_user [String] the email address of the user to impersonate; only available for
   admin roles
 @param max_retry_time [Fixnum] overrides the maximum number of seconds during which eligible
   errors will be retried
 @param backoff_method [Proc] overrides the backoff calculation method, accepting the index of
   the current retry attempt (0-based) and returning the number of seconds to wait before
   retrying the call again, or `:stop` to halt retrying and return the latest error.

   Example - Wait 1 second before the first retry, 2 seconds before
   the second, and so on:
   ```ruby
   ->(x){ x + 1 }
   ```

   Example - Try twice, then halt:
   ```ruby
   ->(x){ if x < 2 then x + 1 else :stop end }
   ```
 @param base_url [String] overrides the base URL used when constructing API calls; for example,
   the default takes the form of `https://api.smartsheet.com/2.0`