RiotKit
Toolkit Ruby para a Riot Games API: roteamento regional e hosts de plataforma, fluxos de partida/jogador com Result, facades fluentes e Data Dragon embutido. Serve em qualquer app Ruby — Rails é opcional.
Idiomas: English · Português (BR)
Instalação
No Gemfile, depois bundle install:
gem "riot_kit", "~> 1.0"
Pelo GitHub (branch ou fork):
gem "riot_kit", github: "VictorCostaOliveira/riot-kit", branch: "main"
Ruby ≥ 3.2 — ver riot_kit.gemspec.
Configuração
É preciso de uma API key de desenvolvedor Riot. Use RIOT_API_KEY no ambiente (ou atribua config.api_key na mão).
Rails
bin/rails generate riot_kit:install
Gera config/initializers/riot_kit.rb. Ajuste region (cluster de roteamento) e platform (shard: br1, na1, euw1, …).
Projeto Ruby qualquer
require "riot_kit"
RiotKit.configure do |config|
config.api_key = ENV.fetch("RIOT_API_KEY")
config.region = :americas # :americas | :europe | :asia | :sea
config.platform = :br1 # br1, na1, euw1, ...
end
Timeouts, retries e logger opcionais vêm comentados no initializer gerado.
Uso
Facades
player = RiotKit::Player.find("Nome#TAG")
player.matches(:ranked).first # lazy: detalhes conforme iteração
player.match("BR1_1234567890")
player.ranked
player.avg_matches_per_week
RiotKit::Items.find(3078)
RiotKit::Champions.find("Aatrox")
Services (Result)
RiotKit::Services::Riot::MatchHistory.call(nickname: "Nome#TAG", filter: :ranked)
.on_success { |entries| p entries }
.on_failure { |error| warn error. }
Data Dragon
Dados estáticos de campeões, itens, runas e feitiços vêm na própria gem.
Para platform / region por requisição, comportamento lazy de matches, filas, limites e APIs de mais baixo nível, veja Documentação.
Documentação
| Doc | Conteúdo |
|---|---|
| INTEGRATION.pt-br.md | Generator Rails, padrões de RiotKit.configure, Docker / gem por path:, platform ou region por chamada, controllers e testes |
| INTEGRATION.md | Mesmo guia em inglês |
| CHANGELOG.md | Notas de versão |
Suporte
- Bugs e ideias: abra uma issue no GitHub (busque antes por duplicatas).
- Dúvidas de uso: issues são aceitáveis depois de ler INTEGRATION — inclua versão do Ruby/gem e um exemplo mínimo ao reportar bug.
Temas sensíveis de segurança: use o fluxo de Security do repositório, se existir; senão contato privado com o mantenedor.
Contribuindo
- Fork + branch.
bundle installbundle exec rspecebundle exec rubocop- Pull request com descrição objetiva.
Releases: suba a versão em lib/riot_kit/version.rb e dê push na main. O workflow Release RubyGem (.github/workflows/release.yml) roda RuboCop, RSpec, depois cria a tag vX.Y.Z se ainda não existir e publica no RubyGems no mesmo job (tag criada pelo GITHUB_TOKEN não dispara outro workflow no GitHub). Se a tag já existe, o passo do gem é pulado. Manual: Actions → Release RubyGem (workflow_dispatch). PRs e branches que não são main usam só o CI (.github/workflows/ci.yml).
Licença
MIT — ver LICENSE.txt.