41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
# Ruby Sea Battle — Main Server
|
|
|
|
Главный бэкенд многопользовательской онлайн-игры «Морской бой», написанный на Ruby on Rails 8.
|
|
|
|
## Документация
|
|
|
|
- [API.md](API.md) — спецификация REST API и WebSocket Action Cable
|
|
- [docs/matchmaking.md](docs/matchmaking.md) — детальное описание алгоритма матчмейкинга, структур Redis и Lua-скриптов
|
|
- [docs/architecture.md](docs/architecture.md) — общая архитектура сервера, стек компонентов и модель безопасности
|
|
|
|
## Требования
|
|
|
|
- Ruby 3.4+ / 4.0
|
|
- SQLite 3 (для разработки и тестов) / PostgreSQL (production)
|
|
- Redis 6+ (для очередей матчмейкинга и Action Cable)
|
|
|
|
## Установка и запуск
|
|
|
|
```bash
|
|
# 1. Установка зависимостей
|
|
bundle install
|
|
|
|
# 2. Подготовка базы данных
|
|
bin/rails db:prepare
|
|
|
|
# 3. Запуск сервера разработки (Puma на порту 3000)
|
|
bin/rails server
|
|
```
|
|
|
|
## Тестирование
|
|
|
|
Проект полностью покрыт тестами на RSpec (модели, сервисы, контроллеры, Action Cable каналы и фоновые задачи).
|
|
|
|
```bash
|
|
# Запуск полного набора тестов
|
|
bundle exec rspec
|
|
|
|
# Запуск тестов со сбором отчета о покрытии кода (SimpleCov)
|
|
COVERAGE=true bundle exec rspec
|
|
```
|