class IDRAC::Client

def self.connect(host:, username:, password:, **options)

Primary interface - block-based API that ensures session cleanup
def self.connect(host:, username:, password:, **options)
  client = new(host: host, username: username, password: password, **options)
  return client unless block_given?
  
  begin
    client.login
    yield client
  ensure
    client.logout
  end
end