TSRails is a base Rails project that you can upgrade. It is used by Taylored Software as a foundation for their Rails development efforts.
TSRails is based upon the excellent suspenders gem from thoughtbot, extended and modified to include other setup tasks commonly performed in Taylored Software's Rails environment.
Using TSRails
To create a new project first install tsrails:
gem install tsrails
Then run:
tsrails create projectname
or:
tsrails new projectname
This will create a project in projectname
, and will check it into version
control (Git) using the settings specified in the configuration file (see
below.)
Configuration
The TSRails gem requires several configuration options which define things like the staging server, Git username, etc. THese are defined in a configuration file, ~/.tsrails.yml, which is automatically generated if it is not present.
The configuration file should contain the following keys:
- staging_server - The hostname of the Git/staging Web server
- staging_ssh_user - The ssh user to use for accessing the remote server
- remote_git_dir - The root of the Git directory tree on the remote server
- remote_apache_dir - The root of the Apache directory tree on the remote server
- test_app_domain - The domain of the remote server (used for generating an Apache/mod_passenger configuration for the test site.
As mentioned above, this configuration file is automatically generated if it's
not present when tsrails
runs. However, the generated configuration file is
almost certainly incorrect, so tsrails will abort after generating a new
configuration file to allow you to edit it.
About TSRails
TSRails was created for use at Taylored Software as a baseline application setup, with reasonable default plugins that the majority (if not all) of our applications used, as well as best-practice configuration options.
Although TSRails has been packaged as a general-purpose gem, it does (at present) make several assumptions that are specific to Taylored Software's server configuration and which may not be what you want:
- The Git repository and Web server live on the same server
- The Web site is to be deployed with Apache 2.2/mod_passenger and with Ruby Enterprise Edition installed in /opt/ree
Included Gems
TSRails includes the following gems in the generated application along with their associated configuration files:
- User Login and Authentication
- Clearance
- Template and Markup Processing
- HAML
- RedCloth
- Form Enhancements
- Paperclip
- tiny_mce
- flutie
- formtastic
- View Enhancements
- WillPaginate
- Application Infrastructure
- Hpricot
- exception_notification
- Nokogiri
- Ryan Bates's
nifty-generators
- Database Adapters
- SQLite3 (development and test environments)
- MySQL (production environment)
- Deployment
- Capistrano
- Heroku
- Mongrel and mongrel_cluster
TSRails also includes the following BDD/testing tools:
- factory_girl
- RSpec
- Shoulda
- capybara
- Timecop
Initializers (in config/initializers)
backtrace_silencers.rb
: Configured to silence backtraces from Shoulda and factory_girlapp_config.rb
: Loads application settings from config/app_config.ymlclearance.rb
: Configuration for Clearancehaml_options.rb
: Configures HAML optionsjquery.rb
: Substitutes jQuery for Prototype.JSnoisy_attr_accessible.rb
: Logs protected attribute assignmentsrequires.rb
: Autoloads libraries inlib/
andlib/extensions
Version History
- 2.0.3 - 2012 Nov 15 - Modified to remove RVM integration since we're using rbenv now
- 2.0.2 - 2012 Feb 23 - Minor release fix
- 2.0.1 - 2012 Feb 23 - Modified template file to more easily change Ruby versions
- 2.0.0 - 2012 Jan 30 - Updated for Rails 3.2
- 1.2.2 - 2011 Jan 11 - Using jquery-rails gem instead of doing the heavy lifting ourselves
- 1.2.1 - 2010 Dec 19 - Replaced RVM Ruby 1.9.2-head with REE 1.8.7-head
- 1.2.0 - 2010 Dec 11 - Replaced
defined_app_name
with@app_name
throughout, addedask_with_default
helper, various fixes for Ruby 1.9.2 compatibility - 1.1.2 - 2010 Nov 19 - Change .rvmrc template to use Rails 1.9.2-head, and update a few things in the Gemfile
- 1.1.1 - 2010 Nov 11 - Prepare test DB after installing Clearance, change
RAILS_ROOT
to::Rails.root.to_s
- 1.1.0 - 2010 Nov 11 - Fixed various bugs in the code generation
- 1.0.6 - 2010 Nov 10 - Fixed a bug with autotest failing
- 1.0.5 - 2010 Nov 10 - Fixed a template bug and updated the readme
- 1.0.4 - 2010 Nov 10 - Added configuration file
- 1.0.3 - 2010 Nov 10 - Initial public version