Class: RiotApi::API

Inherits:
Object
  • Object
show all
Defined in:
lib/riot_api/api.rb

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ API

Creates a new Riot API client instance.

Examples:

ra = RiotApi::API.new :api_key => '######', :region => 'euw'

Parameters:

  • params (Hash)

Options Hash (params):

  • :api_key (String)

    The api_key (required)

  • :api_key (String)

    The region (‘eune’,‘br’,‘tr’,‘na’,‘euw’) (required)

  • :base_url (String) — default: "http://prod.api.pvp.net/api/lol/#{@region}/"

    API base url with region

  • :faraday_adapter (Symbol) — default: 'Faraday.default_adapter'

    Faraday adapter/http client library to use.

Raises:

  • (ArgumentError)

    when no api_key is provided

  • (ArgumentError)

    when no region is provided

  • (ArgumentError)

    when region is not one of ‘eune’,‘br’,‘tr’,‘na’, or ‘euw’

See Also:

  • [Faraday]


18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/riot_api/api.rb', line 18

def initialize(params)
  @api_key             = params[:api_key]
  @region              = params[:region]
  @debug               = params[:debug]
  @ssl                 = params[:ssl] || { :verify => true }
  @base_url            = params[:base_url]            || "http://prod.api.pvp.net/api/"
  @faraday_adapter     = params[:faraday_adapter]     || Faraday.default_adapter
  @raise_status_errors = params[:raise_status_errors] || false
  @faraday             = params[:faraday]             || default_faraday
  raise ArgumentError, ':api_key missing' unless @api_key
  raise ArgumentError, ':region missing' unless @region
  raise ArgumentError, "Invalid Region (Valid regions: 'eune','br','tr','na','euw')" unless ['eune','br','tr','na','euw'].include?(@region)
end

Instance Method Details

#championsObject



32
33
34
# File 'lib/riot_api/api.rb', line 32

def champions
  RiotApi::Resource::Champions.new(@faraday, @region)
end

#default_faradayObject



56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/riot_api/api.rb', line 56

def default_faraday
  Faraday.new(:url => @base_url, :ssl => @ssl) do |faraday|
    faraday.use Faraday::Response::RaiseError if @raise_status_errors
    faraday.request  :url_encoded
    faraday.response :rashify
    faraday.response :json
    faraday.response(:logger) if @debug
    faraday.adapter @faraday_adapter
    faraday.params['api_key'] = @api_key
    faraday.headers['User-Agent'] = "riot_api rubygem v#{RiotApi::VERSION}"
  end
end

#gameObject



36
37
38
# File 'lib/riot_api/api.rb', line 36

def game
  RiotApi::Resource::Game.new(@faraday, @region)
end

#leagueObject



40
41
42
# File 'lib/riot_api/api.rb', line 40

def league
  RiotApi::Resource::League.new(@faraday, @region)
end

#statsObject



44
45
46
# File 'lib/riot_api/api.rb', line 44

def stats
  RiotApi::Resource::Stats.new(@faraday, @region)
end

#summonerObject



48
49
50
# File 'lib/riot_api/api.rb', line 48

def summoner
  RiotApi::Resource::Summoner.new(@faraday, @region)
end

#teamObject



52
53
54
# File 'lib/riot_api/api.rb', line 52

def team
  RiotApi::Resource::Team.new(@faraday, @region)
end