Files
ruby-sea-battle/main-server
..
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-10-25 17:21:49 +03:00
2026-10-25 17:10:40 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-10-12 08:20:32 +03:00
2026-10-12 08:20:32 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-09-21 21:43:30 +03:00
2026-10-27 09:25:30 +03:00
2026-10-27 09:25:30 +03:00
2026-09-21 21:43:30 +03:00

Ruby Sea Battle — Main Server

Главный бэкенд многопользовательской онлайн-игры «Морской бой», написанный на Ruby on Rails 8.

Документация

  • API.md — спецификация REST API и WebSocket Action Cable
  • docs/matchmaking.md — детальное описание алгоритма матчмейкинга, структур Redis и Lua-скриптов
  • docs/architecture.md — общая архитектура сервера, стек компонентов и модель безопасности

Требования

  • Ruby 3.4+ / 4.0
  • SQLite 3 (для разработки и тестов) / PostgreSQL (production)
  • Redis 6+ (для очередей матчмейкинга и Action Cable)

Установка и запуск

# 1. Установка зависимостей
bundle install

# 2. Подготовка базы данных
bin/rails db:prepare

# 3. Запуск сервера разработки (Puma на порту 3000)
bin/rails server

Тестирование

Проект полностью покрыт тестами на RSpec (модели, сервисы, контроллеры, Action Cable каналы и фоновые задачи).

# Запуск полного набора тестов
bundle exec rspec

# Запуск тестов со сбором отчета о покрытии кода (SimpleCov)
COVERAGE=true bundle exec rspec