A Ruby libary wrapper for the Vainglory API
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.rubocop.yml
.travis.yml
CHANGELOG.md
Gemfile
LICENSE
README.md
vainglory_api.gemspec

README.md

Travis CI Code Climate Test Coverage Gem Version Inline docs MIT License

vainglory-api

A Ruby libary wrapper for the Vainglory API

See also: YARD Documentation, Official Vainglory API Documentation


Getting Started

VaingloryAPI works with Ruby 2.0 onwards. Please refer to the YARD Documentation for a better understanding of how everything works.

Installation

You can add it to your Gemfile with:

gem 'vainglory-api'

Then run bundle install

You can also install it manually with:

gem install vainglory-api

Usage

You can create an instance of the API client by initializing with your API key and specified region (na is the default):

client = VaingloryAPI.new('YOUR_API_KEY', 'na')

Region Errors

A valid region short name is required when instantiating a client. Providing an invalid region short name will raise VaingloryAPI::RegionNameError.

Helper Attributes

All client methods return an OpenStruct object containing the response attributes with some additional helper attributes.

response = client.samples

response.code     # The HTTP response code
response.success? # Returns true if the response code is less than 300
response.raw      # The complete HTTP response

Rate Limits

Each request will return data about your rate limits.

response.rate_limit     # Request limit per day / per minute
response.rate_remaining # The number of requests left for the time window
response.rate_reset     # The remaining window before the rate limit is refilled in UTC epoch nanoseconds.

More information: https://developer.vainglorygame.com/docs#rate-limits

Filtering

Currently, filters are supported by these client methods:

  • VaingloryAPI::Client#matches
  • VaingloryAPI::Client#samples

You can pass filters in as a hash using the exact Query Parameter key names outlined in the Vainglory API Documentation.

# Example matches request with filter
client.matches('filter[playerNames]' => 'boombastic04,IHaveNoIdea')

Methods

To get multiple matches:

client.matches

To get single match data, you must provide the ID of a match:

client.match('37f94e56-1360-11e7-a250-062445d3d668')

You can search for data of one or more players by passing their in-game names (IGNs):

client.players('boombastic04', 'IHaveNoIdea')

To get data about a single player, you must provide the ID of the player:

client.player('6abb30de-7cb8-11e4-8bd3-06eb725f8a76')

To get Telemetry data, you must provide the data URL:

client.telemetry('https://gl-prod-us-east-1.s3.amazonaws.com/assets/semc-vainglory/na/2017/03/28/03/07/b0bb7faf-1363-11e7-b11e-0242ac110006-telemetry.json')

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/cbortz/vainglory-api-ruby.

License

MIT License. Copyright 2017 Chet Bortz