public
Description: Website for bostonrb.org
Homepage: http://bostonrb.org
Clone URL: git://github.com/bostonrb/bostonrb.git
README.textile

Boston.rb

This is the source code to Boston.rb, a Rails app which helps Boston Rubyists communicate.

It is open source under the MIT license. Fork away, modify to your own user group’s needs, & send us pull requests!

Dependencies

All gems are vendored except for Nokogiri, JSON, RedCloth, and Feedzirra, which have native extensions, & Cucumber, which doesn’t respect vendoring.

Install:

cucumber 0.3.5 json 1.1.6 pauldix-feedzirra 0.0.12 RedCloth 4.1.0

Tests

We use Cucumber & Webrat for acceptance testing and Shoulda, Factory Girl, & Mocha for unit testing. We use Fakeweb to stop the test suite from hitting external services. We use Nokogiri for parsing markup, especially in acceptance tests.

Development & Test databases

Boston.rb comes without a database.yml. It is also ignored from git. This is so we can deploy with the correct credentials. As a developer, that means you need to create one of your own. Developers are successfully using MySQL & Postgres. SQLite should be fine, too.

Run rake db:bootstrap to seed some example data.

Production

EngineYard is awesome enough to provide us with hosting.

Dependencies

The gems with native dependencies as mentioned above need to be installed on the production machine. Typically you do:

sudo gem install whatever-gem —no-ri —no-rdoc

Since we use some gems that are only on github (ie feedzirra), this needs to be run at least once:

gem sources -a http://gems.github.com

Cron

The following rake tasks need to be configured to keep data fresh:

rake RAILS_ENV=production get_tweets rake RAILS_ENV=production get_blogs

For our EY deployment, there’s a custom wrapper to handle logging output at /engineyard/custom/cron_wrapper, which among other things, adds logging to /data/bostonrb/current/logs. It takes four arguments: the application to run for (always will be bostonrb), the name of the log file, the rails environment, and lastly the command to run

The current crontab entries look like:

*/5 * * * * /engineyard/custom/cron_wrapper bostonrb get_tweets production ‘rake get_tweets’ */5 * * * * /engineyard/custom/cron_wrapper bostonrb get_blogs production ‘rake get_blogs’

Deployers

Josh Nichols and Dan Croak have access to the production slice.
This must be added to cron:

Contributors

Dan Croak, Josh Nichols, Harold Gimenez, Dan Pickett, Rebecca Frankel, Joe Ferris.

Design by Angelo Simeoni.