Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Rails 3 app for playing the board game Go online.
Ruby JavaScript
Branch: master
Failed to load latest commit information.
app fixing bug where it would try to send an invitation email for a govsg…
autotest switching to rspec
config automatically clear old stuck games each day
db send email containing chat message when user requests it
doc initial commit with game model
lib automatically clear old stuck games each day
public bump up jquery ajax timeout so it doesn't leave long requests hanging
script specifying path to bundler gemfile in worker
spec fixing bug where it would try to send an invitation email for a govsg…
vendor/plugins initial commit with game model
.gitignore adding email notifications
.rspec adding initial invitation feature
.rvmrc updating .rvmrc
.travis.yml use Ruby 1.9.2 in travis.yml
Capfile adding basic deploy.rb script
Gemfile send email move notification even when receipient is online because i…
Gemfile.lock send email move notification even when receipient is online because i…
Guardfile send email move notification even when receipient is online because i…
LICENSE removing jquery-ui because I'm not using it (yet)
README.markdown automatically clear old stuck games each day
Rakefile initial commit with game model
config.ru initial commit with game model

README.markdown

Go vs Go

This is the source code for govsgo.com, a site for playing the board game Go online with other players or against the computer.

If you have problems or suggestions, please post them on the Issue Tracker.

Setup

Ruby 1.9.2 is required. If you're using RVM it should automatically switch to 1.9.2 when entering the directory.

Run the following commands to set it up. Note the Homebrew command to install GNU Go and Beanstalk. You may want to use a different packaging system or install them from the source.

bundle
cp config/database.example.yml config/database.yml
cp config/private.example.yml config/private.yml
rake db:create db:migrate
brew install gnu-go beanstalk

You can start up the server with rails s and run the specs with rake.

Background Process

In production, the computer moves are handled in a background process because GNU Go can take a while and we don't want to tie up the Rails process during this time.

If you want to test the background process, set background_process: true in your config/private.yml file. Next run beanstalkd and script/worker. to start up the processes. Alternatively you can use god to start and monitor it. See the config/god.rb file.

Fix GNU Go

If GNU Go seems to be stuck, it may have run into a game or two that it cannot complete. Run the following command in the rails console to clear out any old games that are stuck.

Game.where("current_player_id IS NULL AND finished_at IS NULL and updated_at < ?", 1.day.ago).update_all(:finished_at, Time.zone.now)

Then restart Beanstalkd, the worker, and web server.

sudo /etc/init.d/beanstalkd restart
god restart govsgo-worker
touch tmp/restart.txt

Credits

This site was originally created for Rails Rumble 2010 by Ryan Bates, James Edward Gray II and Phil Bates.

Something went wrong with that request. Please try again.