Illianthe/lolbase

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# LoLBase [![Build Status](https://travis-ci.org/Illianthe/lolbase.png?branch=master)](https://travis-ci.org/Illianthe/lolbase) [![Code Climate](https://codeclimate.com/github/Illianthe/lolbase.png)](https://codeclimate.com/github/Illianthe/lolbase) [![Gem Version](https://badge.fury.io/rb/lolbase.png)](http://badge.fury.io/rb/lolbase)

A basic Ruby wrapper for the League of Legends API.

* GitHub: [https://github.com/Illianthe/lolbase](https://github.com/Illianthe/lolbase)
* RubyGems: [https://rubygems.org/gems/lolbase](https://rubygems.org/gems/lolbase)

## Installation

Add this line to your application's Gemfile:

    gem 'lolbase'

And in the console, execute:

    $ bundle

## Usage

### 1. Configuration

LoLBase can be globally configured through the *LoLBase::configure* method. The values shown are the defaults set by the gem.

    LoLBase.configure do |config|
      config.default_region = "na"    # Default region for summoner lookup
      config.default_key = nil        # Default API key

      # Determines which API version to use
      config.version_champion = "1.1"
      config.version_game = "1.2"
      config.version_league = "2.2"
      config.version_stats = "1.2"
      config.version_summoner = "1.2"
      config.version_team = "2.2"

      # Current season - used as a default value for ranked stats
      config.current_season = "3"
    end

### 2. Connection

    connection = LoLBase.new "your-api-key-here"

All connections begin by calling *LoLBase::new* which takes an API key as an argument (this can be left blank if it was provided in the config). Multiple connections can be used if you have more than one key available to you.

### 3. Data Retrieval

#### 3.1 Champion

    # Fetch a list of all the champions in the game
    champions = connection.champions.all

    # Find a specific subset of champions
    f2p_champs = connection.champions.find(free_to_play: true)
    champ = connection.champions.find(id: 99)
    champ = connection.champions.find(name: "Lux")

    # Given a single champion, retrieve details about it
    champ.id
    champ.name
    champ.status    # Check whether it is enabled in a given queue
    champ.stats     # Ratings for attributes/difficulty

#### 3.2 Summoner

    # Fetch a summoner by their name...
    summoner = connection.summoner("A Summoner Name", "na")

    # ...or by their ID
    summoner = connection.summoner(12345, "euw")

    # Retrieve data associated to the summoner
    summoner.id
    summoner.name
    summoner.region
    summoner.level
    summoner.last_modified

#### 3.3 Profile Icon

    summoner.profile_icon.id

#### 3.4 Statistics

    # A specified ranked season is passed - defaults to LoLBase.config.current_season
    summary = summoner.stats.summary(3)    
    ranked = summoner.stats.ranked(3)

    # Retrieve the stats summary for a particular queue type
    aram = summary.find(name: "AramUnranked5x5")
    aram.stats["wins"]
    aram.last_modified

    # Retrieve all recorded stats summaries
    summary.all

    # Retrieve the ranked stats for a particular champion
    lux = ranked.find(champion_id: 99)
    games_played = lux.stats["totalSessionsPlayed"]

    # Retrieve the ranked stats for all champions
    ranked.all

    # Aggregated stats for ranked play
    ranked.overall
    ranked.last_modified

## Resources

* Official API Reference: [https://developer.riotgames.com/api/methods](https://developer.riotgames.com/api/methods)