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.message }

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

  1. Fork + branch.
  2. bundle install
  3. bundle exec rspec e bundle exec rubocop
  4. 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.