def load
      response =
        if !@id.nil?
          # Find summoner by ID
          @connection.get "/api/lol/#{@region}/v#{LoLBase.config.version_summoner}/summoner/#{@id}"
        else
          # Find summoner by name
          @connection.get "/api/lol/#{@region}/v#{LoLBase.config.version_summoner}/summoner/by-name/#{@name}"
        end

      # Populate object with response data
      data = JSON.parse(response)
      @id = data["id"]
      @name = data["name"]
      @profile_icon = ProfileIcon.new data["profileIconId"], self
      @last_modified = Time.at(data["revisionDate"] / 1000)
      @level = data["summonerLevel"]
    end
def load
      response =
        if !@id.nil?
          # Find summoner by ID
          @connection.get "/api/lol/#{@region}/v#{LoLBase.config.version_summoner}/summoner/#{@id}"
        else
          # Find summoner by name
          @connection.get "/api/lol/#{@region}/v#{LoLBase.config.version_summoner}/summoner/by-name/#{@name}"
        end

      # Populate object with response data
      data = JSON.parse(response)
      @id = data["id"]
      @name = data["name"]
      @profile_icon = ProfileIcon.new data["profileIconId"], self
      @last_modified = Time.at(data["revisionDate"] / 1000)
      @level = data["summonerLevel"]
    end
Input
 - params - A hash containing either a summoner name or ID, the region that they belong to,
   and whether to preload the object with Riot's data (e.g. { id: 123, region: "na", preload: false })
 - connection - Current connection to the Riot API

 Output: Returns a Summoner object for further chaining