Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
davidw rails template
# Originall created by, adapted by David N. Welton -
# rails new APP_NAME -m /path/to/gist/davidwrailstemplate.rb -T -J
initializer 'generators.rb', <<-RUBY
Rails.application.config.generators do |g|
template = {"orm"=>"activerecord", "unit_testing"=>"rspec", "integration_testing"=>"on", "javascript"=>"jquery", "authentication"=>"devise", "templating"=>"on", "css"=>"on"}
recipes = template.values.flatten
def say_recipe(name); say "\033[36m" + "recipe".rjust(10) + "\033[0m" + " Running #{name} recipe..." end
def say_wizard(text); say "\033[36m" + "wizard".rjust(10) + "\033[0m" + " #{text}" end
@after_blocks = []
def after_bundler(&block); @after_blocks << block; end
# >-----------------------------[ ActiveRecord ]------------------------------<
# Use the default ActiveRecord database store.
say_recipe 'ActiveRecord'
# No additional code required.
# >---------------------------------[ RSpec ]---------------------------------<
# Use RSpec for unit testing for this Rails app.
say_recipe 'RSpec'
gem 'rspec-rails', '>= 2.0.1', :group => [:development, :test]
gem 'sqlite3-ruby', :require => 'sqlite3', :group => [:development, :test]
inject_into_file "config/initializers/generators.rb", :after => "Rails.application.config.generators do |g|\n" do
" g.test_framework = :rspec\n"
after_bundler do
generate 'rspec:install'
# >--------------------------------[ jQuery ]---------------------------------<
# Adds the latest jQuery and Rails UJS helpers for jQuery.
say_recipe 'jQuery'
inside "public/javascripts" do
get "", "rails.js"
get "", "jquery.js"
application do
"\nconfig.action_view.javascript_expansions[:defaults] = %w(jquery rails)\n"
gsub_file "config/application.rb", /# JavaScript.*\n/, ""
gsub_file "config/application.rb", /# config\.action_view\.javascript.*\n/, ""
# >--------------------------------[ Devise ]---------------------------------<
# Utilize Devise for authentication, automatically configured for your selected ORM.
say_recipe 'Devise'
gem 'devise'
gem 'will_paginate'
gem 'exception_notification_rails3', :require => 'exception_notifier'
# Postgres!
gem 'pg'
after_bundler do
generate 'devise:install'
case template['orm']
when 'mongo_mapper'
gem 'mm-devise'
gsub_file 'config/intializers/devise.rb', 'devise/orm/active_record', 'devise/orm/mongo_mapper_active_model'
when 'mongoid'
gsub_file 'config/intializers/devise.rb', 'devise/orm/active_record', 'devise/orm/mongoid'
when 'active_record'
# Nothing to do
generate 'devise user'
# >-----------------------------[ Run Bundler ]-------------------------------<
say_wizard "Running Bundler install. This will take a while."
run 'bundle install'
say_wizard "Running after Bundler callbacks."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.