Uma biblioteca Ruby, TypeScript e Python com dados do RPG de mesa brasileiro Tormenta20.
Inclui um banco de dados SQLite pré-populado com magias, classes, origens, divindades, poderes, equipamentos, raças e condições do sistema T20. Todos os registros expõem referências de livro e página via bookReference() / book_reference.
A biblioteca usa SQLite3. Em ambientes Linux (incluindo Docker):
# Debian/Ubuntu
apt-get install libsqlite3-0
# Alpine
apk add sqlite-libsNo Dockerfile da sua aplicação:
RUN apt-get install --no-install-recommends -y libsqlite3-0Ruby (Bundler):
# Gemfile
gem 'tormenta20'bundle installNode.js / TypeScript:
npm install tormenta20Ruby:
require 'tormenta20'
Tormenta20.magias.arcanas.by_circle("3")
Tormenta20.classes.conjuradores.all
Tormenta20.poderes.poderes_concedidos.all
Tormenta20.racas.find('anao').book_reference # => "T20 - EJA, p. 20"TypeScript / JavaScript:
import { Magia, Classe, Poder, Raca } from 'tormenta20'
Magia.arcanas().all()
Classe.conjuradores().all()
Poder.poderesConcedidos().all()
Raca.find('anao')?.bookReference() // => { formatted: "T20 - EJA, p. 20", ... }- Ruby >= 3.0.0
- Node.js >= 18
- Bundler
git clone https://github.com/LuanGB/tormenta20.git
cd tormenta20
bundle install
npm installO arquivo db/tormenta20.sqlite3 é gerado a partir dos JSONs em src/json/:
# Ruby
rake build_db
# Build completo (inclui build_db)
rake build
# TypeScript (compila dist/ + docs)
npm run build
npm run docstormenta20/
├── src/
│ ├── json/ # Dados fonte em JSON
│ ├── ruby/ # Código Ruby (ActiveRecord models)
│ └── ts/ # Código TypeScript
├── docs/
│ ├── ruby/ # Referência da API Ruby
│ └── ts/ # Referência da API TypeScript
├── db/
│ ├── schema.sql
│ └── tormenta20.sqlite3 # Gerado por rake build_db
└── dist/ # Build TypeScript compilado
# Ruby
bin/test
# TypeScript
npm testBug reports e pull requests são bem-vindos em https://github.com/LuanGB/tormenta20.
Disponível como open source sob os termos da MIT License.
Tormenta20 é uma marca registrada da Jambô Editora. Esta biblioteca é um projeto de fã não oficial e não é afiliada, endossada ou patrocinada pela Jambô Editora.