- Drop support for Ruby 1.8.7.
- Add tau and alpha as parameters to catchup algorithm.
- Record which algorithm was used to select a prompt.
- Add similar choice method to find similar (currently only identical) choices.
- Retry transaction when creating appearance if get deadlocked.
- Create transaction and lock when creating a new appearance.
- Remove votes from vote CSV file that have NA for Appearance ID.
- Alter response for all_object_info_totals_by_date to be valid XML.
- Save CSV exports to a database table instead of redis.
- handle votes or skips that happen after an expired session
- don't allow votes / skips on appearances if their session ids don't match
- use ActiveRecord quoting for table, column names
- add appearance id to votes and nonvote csv
- update cache hit/miss counters to use utc
- optimize objects_by_session_id
- disable catchup on surveys with more than 999 active choices
- Optimize voting API call
- Upgrade to Rails 2.3.16
- Add site_stats call to API
- Fix bug in response user_generated_ideas totals over time, where the min and max dates were getting added as strings instead of date objects
- Update choices to act_as_versioned
- Added votes_per_uploaded_choice call to API
- Added median_responses_per_session call to API
- Added upload_to_participation_rate call to API
- Added vote_rate call to API
- Upgrade to Rails 2.3.14
- Switch to using bundler for gem management