public
Last active

davidw rails template

  • Download Gist
davidwrailstemplate.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
# Originall created by RailsWizard.org, adapted by David N. Welton - http://www.dedasys.com
# rails new APP_NAME -m /path/to/gist/davidwrailstemplate.rb -T -J
 
initializer 'generators.rb', <<-RUBY
Rails.application.config.generators do |g|
end
RUBY
 
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"
end
 
after_bundler do
generate 'rspec:install'
end
 
# >--------------------------------[ jQuery ]---------------------------------<
 
# Adds the latest jQuery and Rails UJS helpers for jQuery.
say_recipe 'jQuery'
 
inside "public/javascripts" do
get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "rails.js"
get "http://code.jquery.com/jquery-1.5.min.js", "jquery.js"
end
 
application do
"\nconfig.action_view.javascript_expansions[:defaults] = %w(jquery rails)\n"
end
 
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'
end
end
 
 
 
 
# >-----------------------------[ Run Bundler ]-------------------------------<
 
say_wizard "Running Bundler install. This will take a while."
run 'bundle install'
say_wizard "Running after Bundler callbacks."
@after_blocks.each{|b| b.call}

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.