Much of this application's functionality comes from component gems that began as part of this project and subsequently branched away to become stand-alone projects:
- ACPC Dealer - Wraps the ACPC Dealer Server in a handy gem with a convenient runner class, and a script for compiling and running the dealer and example players.
- ACPC Dealer Data - Utilities for extracting information from ACPC Dealer Server logs. Used for testing.
- ACPC Poker Basic Proxy - Utilities for communicating with the ACPC Dealer Server.
- ACPC Poker Match State - Provides a manager for the state of a poker match.
- ACPC Poker Player Proxy - Provides a full proxy through which a match of poker may be played with the ACPC Dealer Server. Match states sent by the dealer are retrieved automatically whenever they are available, and are interpreted and managed for the user.
- ACPC Poker Types - Fundamental poker types like
Card
,Player
,GameDefinition
, andMatchState
.
MongoDB is used as the database back-end and Redis for background processing.
A Thin
server packaged with rails
serves the application locally in development mode (though if the installation of the thin
gem has problems, simply remove that line from the Gemfile
and the default WEBrick
server will be used instead).
An Apache server hosts the application proper in production mode. This is currently done with Apache-Rails integration through Phusion Passenger. As Apache is only used in production, it is not required to deploy this application on a local development server.
This project includes custom generators:
- poker_bot
- scss_class
For execution details, run
rails g <generator name> --help
For more information, see this tutorial on Rails generators.