public
Fork of ffmike/BigOldRailsTemplate
Description: Heavyweight template for Rails 2.3.x
Homepage:
Clone URL: git://github.com/joevandyk/BigOldRailsTemplate.git
Joe Van Dyk (author)
Mon Aug 10 12:56:13 -0700 2009
name age message
file README Loading commit data...
file config.yml
file lark_template.rb
README
A few people have asked me about the Rails application template that I’ve put together recently. For those who are in
terested, here it is. To use it, just specify the -m switch when creating a Rails application:

rails new_app_name -m lark_template.rb

I should warn you of two things. First, it’s a pretty heavyweight template, sticking a lot of stuff into the new ap
plication. This suits me, because I have a lot of things I use in just about every application, but it may not suit you. 
Second, Rails templates are not one-size-fits-all; you’d be better off treating this as a starting point to steal from th
an a finished template to use (though if you want to use it, feel free).

There is some configuration available for the template. See config.yml to set persistent configuration information. If 
you don't have a 
config.yml, or it doesn't have an option that the template is looking for, you'll be prompted at runtime.

Here’s a list of what this template sets up:

Rails

    * Uses the edge of the 2-3-stable branch in the Rails git repository. You can change the branch in config.yml, so 
    you can use, for example, 2-2-stable or (if you're feeling brave) master
    
SCM

    * git repo
    * master, staging, and development branches (you can adjust this in config.yml)
    * Rails and plugins installed with Piston by default - you can change this to use Braid, git submodules, or just 
    straight code in config.yml. You can also choose to depend on gem rails instead of vendoring it to the project.
  
Coding Tools

    * Authlogic for user authentication, including password resets, anonymous_only, authenticated_only, admin_only 
    application helpers
    * World’s simplest authorization system: manage multiple string roles on users with User#add_role, Us
    er#remove_role, User#clear_roles, and User#has_role?
    * Date formats: :us, :us_with_time, :short_day, :long_day
    * live-validations for client-side JavaScript data entry validation. Add :live_validations => true to form_for 
    declarations to hook this up.
    * Paperclip for attachment management
    * /pages/css_test will show most CSS styles in action
    * Searchlogic for magic named scopes and search forms – http://rdoc.info/projects/binarylogic/searchlogic. In
    cludes attribute_equals, attribute_does_not_equal, attribute_begins_with, attribute_like, attribute_ends_with, 
    attribute_greater_than, attribute_null, attribute_blank etc. etc.
    * Stringex for extra string functionality – acts_as_url, String#to_ascii, String#to_html, String#to_url, St
    ring#remove_formatting, String.random
    * US State application helpers
    * will-paginate for pagination

Database Tools

    * Hooked up for PostgreSQL, MySQL, or sqlite depending on your configuration options
    * admin-data plugin for administrative UI. http://localhost:3000/admin_data will get you to the application’s da
    ta. On production, only admin can view data, no one can edit (modify config/initializers/admin_data.rb to adjust 
    this)
    * db-populate for seed data

Deployment Tools

    * fast_remote_cache strategy for deployment
    * rubiadhstrano for deployment recipes; automatically uses multiple targets, so: cap production deploy for 
    deployment to production
    * superdeploy for additional Capistrano tasks. cap -T for full list.

External Services

    * Exceptional or Hoptoad for error tracking. Go to /pages/kaboom to test after finishing setup.
    * New Relic or Scout for performance tracking, depending on your configuration options.

Testing Tools

    * Shoulda and Test::Unit for testing
    * Mocha for mocking
    * Object Daddy for factories
    * Generated code is already covered by tests
    * parallel-test for faster testing. rake spec:parallel:prepare[2] to set up two test databases. rake 
    test:parallel[2] to distribute tests across two cores
    * rack-bug for request/response/perf analysis. http://localhost:3000/__rack_bug__/bookmarklet.html to add 
    bookmarklet to browser.
    * shmacros for additional Shoulda macros: should_accept_nested_attributes_for, should_act_as_taggable_on, 
    should_callback, should_delegate, more
    * More extra shoulda macros: should_have_before_filter, should_have_after_filter
    * metric-fu for static code analysis. rake metrics:all, configure in Rakefile
    * inaction-mailer is installed for development environment, so mails sent during dev will end up as files in 
    /tmp/sent_mails

Miscellaneous

    * Code to encourage IE6 users to get a real browser is included on the home page by default. You can adjust this in 
    the configuration.
    
Thanks to:
  - Rob Zolkos (typo fix)
  - Jeraimee (MySQL translation of database.yml)