def load(options = {})
      assert_valid_keys(options, :song_log)
      options = {:song_log => false}.merge(options)

      # Use a client that is connected on the same url this room is hosted on
      client = @client.url == url ? @client : Turntabler::Client.new(@client.user.id, @client.user.auth, :url => url, :timeout => @client.timeout)

      begin
        data = api('room.info', :extended => options[:song_log])
        self.attributes = data['room'].merge('users' => data['users'])
        super()
      ensure
        # Close the client if it was only opened for use in this API call
        client.close if client != @client
      end
    end
def load(options = {})
      assert_valid_keys(options, :song_log)
      options = {:song_log => false}.merge(options)

      # Use a client that is connected on the same url this room is hosted on
      client = @client.url == url ? @client : Turntabler::Client.new(@client.user.id, @client.user.auth, :url => url, :timeout => @client.timeout)

      begin
        data = api('room.info', :extended => options[:song_log])
        self.attributes = data['room'].merge('users' => data['users'])
        super()
      ensure
        # Close the client if it was only opened for use in this API call
        client.close if client != @client
      end
    end
Loads the attributes for this room.  Attributes will automatically load
 when accessed, but this allows data to be forcefully loaded upfront.

 @note This will open a connection to the chat server the room is hosted on if the client is not already connected to it
 @param [Hash] options The configuration options
 @option options [Boolean] :song_log (false) Whether to include the song log
 @return [true]
 @raise [ArgumentError] if an invalid option is specified
 @raise [Turntabler::Error] if the command fails
 @example
   room.load                       # => true
   room.load(:song_log => true)    # => true