Class: Lol::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/lol/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key, options = {}) ⇒ Lol::Client

Initializes a Lol::Client

Parameters:

  • api_key (String)
  • options (Hash) (defaults to: {})

Options Hash (options):

  • :region (String) — default: "EUW"

    The region on which the requests will be made

  • :redis (String)

    the redis url to use for caching

  • :ttl (Fixnum) — default: 900

    the cache ttl



78
79
80
81
82
# File 'lib/lol/client.rb', line 78

def initialize api_key, options = {}
  @api_key = api_key
  @region = options.delete(:region) || "euw"
  set_up_cache(options.delete(:redis), options.delete(:ttl))
end

Instance Attribute Details

#api_keyString (readonly)

Returns the API key that has been used.

Returns:

  • (String)

    the API key that has been used



10
11
12
# File 'lib/lol/client.rb', line 10

def api_key
  @api_key
end

#regionString

Returns name of region.

Returns:

  • (String)

    name of region



6
7
8
# File 'lib/lol/client.rb', line 6

def region
  @region
end

#ttlFixnum (readonly)

Returns the ttl on cached requests.

Returns:

  • (Fixnum)

    the ttl on cached requests



14
15
16
# File 'lib/lol/client.rb', line 14

def ttl
  @ttl
end

Instance Method Details

#cache_storeHash

Returns an options hash with cache keys

Returns:

  • (Hash)


94
95
96
97
98
99
100
# File 'lib/lol/client.rb', line 94

def cache_store
  {
    redis:  @redis,
    ttl:    @ttl,
    cached: @cached,
  }
end

#cached?Boolean

Returns true if requests are cached.

Returns:

  • (Boolean)

    true if requests are cached



103
104
105
# File 'lib/lol/client.rb', line 103

def cached?
  @cached
end

#championChampionRequest

Returns:



17
18
19
# File 'lib/lol/client.rb', line 17

def champion
  @champion_request ||= ChampionRequest.new(api_key, region, cache_store)
end

#current_gameCurrentGameRequest

Returns:



62
63
64
# File 'lib/lol/client.rb', line 62

def current_game
  @current_game ||= CurrentGameRequest.new(api_key, region, cache_store)
end


67
68
69
# File 'lib/lol/client.rb', line 67

def featured_games
  @featured_games ||= FeaturedGamesRequest.new(api_key, region, cache_store)
end

#gameGameRequest

Returns:



22
23
24
# File 'lib/lol/client.rb', line 22

def game
  @game_request ||= GameRequest.new(api_key, region, cache_store)
end

#leagueLeagueRequest

Returns:



37
38
39
# File 'lib/lol/client.rb', line 37

def league
  @league_request ||= LeagueRequest.new(api_key, region, cache_store)
end

#lol_statusLolStatusRequest

Returns:



57
58
59
# File 'lib/lol/client.rb', line 57

def lol_status
  @lol_status ||= LolStatusRequest.new(region, cache_store)
end

#matchMatchRequest

Returns:



27
28
29
# File 'lib/lol/client.rb', line 27

def match
  @match_request ||= MatchRequest.new(api_key, region, cache_store)
end

#redisRedis

Returns the cache store (if available).

Returns:

  • (Redis)

    the cache store (if available)



108
109
110
# File 'lib/lol/client.rb', line 108

def redis
  @redis
end

#set_up_cache(redis_url, ttl) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/lol/client.rb', line 84

def set_up_cache(redis_url, ttl)
  return @cached = false unless redis_url

  @ttl = ttl || 900
  @cached = true
  @redis = Redis.new :url => redis_url
end

#staticStaticRequest

Returns:



52
53
54
# File 'lib/lol/client.rb', line 52

def static
  @static_request ||= StaticRequest.new(api_key, region, cache_store)
end

#statsStatsRequest

Returns:



32
33
34
# File 'lib/lol/client.rb', line 32

def stats
  @stats_request ||= StatsRequest.new(api_key, region, cache_store)
end

#summonerSummonerRequest

Returns:



47
48
49
# File 'lib/lol/client.rb', line 47

def summoner
  @summoner_request ||= SummonerRequest.new(api_key, region, cache_store)
end

#teamTeamRequest

Returns:



42
43
44
# File 'lib/lol/client.rb', line 42

def team
  @team_request ||= TeamRequest.new(api_key, region, cache_store)
end