Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added optional config setup #7

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions README.textile
Original file line number Diff line number Diff line change
@@ -1 +1,19 @@
h2. Usage
<pre><code>rails new app_name -T -m http://github.com/dcrec1/rails3_template/raw/master/main.rb</code></pre>

h2. Configuration
You can turn off various features by adding the option no_WHATEVER to the ~/.rails3_template.yml file, where WHATEVER is haml, rspec, inherited_resource, etc.
<pre><code>
no_inherited_resource: true
no_exceptional: true
</code></pre>

Note: to provent conflicts this defaults to no_exceptional and no_capistrano

You can also set your root project url to pull templates down from
<pre><code>
root_url: "http://github.com/notch8/rails3_template/raw/master"
</code></pre>

Note: this defaults to "http://github.com/dcrec1/rails3_template/raw/master"

3 changes: 0 additions & 3 deletions hoptoad.rb

This file was deleted.

130 changes: 74 additions & 56 deletions main.rb
Original file line number Diff line number Diff line change
@@ -1,39 +1,56 @@
file_string = "#{ENV["HOME"]}/.rails3_template.yml"
if File.exists?(file_string)
require 'yaml'
config = YAML.load_file(file_string)
else
config = {"no_capistrano" => true, "no_exceptional" => true}
end

config["root_url"] ||= "http://github.com/dcrec1/rails3_template/raw/master"

run "rm -Rf .gitignore README public/index.html public/javascripts/* test app/views/layouts/*"

gem "haml-rails", ">= 0.2"
gem 'inherited_resources', '>=1.1.2'
gem 'will_paginate', '>=3.0.pre2'
gem 'devise', '>=1.1.2'
gem "formtastic", '>=1.1.0'
gem 'friendly_id', '~>3.0'
gem "compass", ">= 0.10.5"
gem "haml-rails", ">= 0.2" unless config["no_haml"]
gem 'inherited_resources', '>=1.1.2' unless config["no_inherited_resource"]
gem 'will_paginate', '>=3.0.pre2' unless config["no_paginate"]
gem 'devise', '>=1.1.2' unless config["no_devise"]
gem "formtastic", '>=1.1.0' unless config["no_formtastic"]
gem 'friendly_id', '~>3.0' unless config["no_friendly_id"]
gem "compass", ">= 0.10.5" unless config["no_compass"]

gem "metric_fu", ">=1.5.1", :group => :development

gem 'rspec', '>=2.0.1', :group => :test
gem 'rspec-rails', '>=2.0.1', :group => [:development, :test]
gem 'remarkable', '>=4.0.0.alpha4', :group => :test
gem 'remarkable_activemodel', '>=4.0.0.alpha4', :group => :test
gem 'remarkable_activerecord', '>=4.0.0.alpha4', :group => :test
gem "factory_girl_rails"
unless config["no_rspec"]
gem 'rspec', '>=2.0.1', :group => :test
gem 'rspec-rails', '>=2.0.1', :group => [:development, :test]
gem 'remarkable', '>=4.0.0.alpha4', :group => :test
gem 'remarkable_activemodel', '>=4.0.0.alpha4', :group => :test
gem 'remarkable_activerecord', '>=4.0.0.alpha4', :group => :test
gem "factory_girl_rails"
end

gem 'cucumber', ">=0.6.3", :group => :cucumber
gem 'cucumber-rails', ">=0.3.2", :group => :cucumber
gem 'capybara', ">=0.3.6", :group => :cucumber
gem 'database_cleaner', ">=0.5.0", :group => :cucumber
gem 'spork', ">=0.8.4", :group => :cucumber
gem "pickle", ">=0.4.2", :group => :cucumber
unless config["no_cucumber"]
gem 'cucumber', ">=0.6.3", :group => :cucumber
gem 'cucumber-rails', ">=0.3.2", :group => :cucumber
gem 'capybara', ">=0.3.6", :group => :cucumber
gem 'database_cleaner', ">=0.5.0", :group => :cucumber
gem 'spork', ">=0.8.4", :group => :cucumber
gem "pickle", ">=0.4.2", :group => :cucumber
end

gem "newrelic_rpm", ">=2.12.3", :group => :production
gem "hoptoad_notifier", '>=2.3.6'
gem "newrelic_rpm", ">=2.12.3", :group => :production unless config["no_rpm"]
gem "hoptoad_notifier", '>=2.3.6' unless config["no_hoptoad"]
gem "exceptional", '>=2.0.0' unless config["no_exceptional"]

gem 'inploy', '>=1.6.8'
gem 'inploy', '>=1.6.8' unless config["no_inploy"]
gem 'capistrano', '>=2.5.19' unless config["no_capistrano"]
gem 'capistrano-ext', '>=1.2.1' unless config["no_capistrano"]

gem 'rails3-generators', :git => "git://github.com/indirect/rails3-generators.git"
gem 'rails3-generators', :git => "git://github.com/indirect/rails3-generators.git" unless config["no_generators"]

run "bundle install"

plugin 'asset_packager', :git => 'git://github.com/sbecker/asset_packager.git'
plugin 'asset_packager', :git => 'git://github.com/sbecker/asset_packager.git' unless config["no_asset_packager"]

application <<-GENERATORS
config.generators do |g|
Expand All @@ -44,43 +61,44 @@
end
GENERATORS

generate "rspec:install"
generate "cucumber:install --capybara --rspec --spork"
generate "pickle --path --email"
generate "friendly_id"
generate "formtastic:install"
generate "devise:install"
generate "devise User"
generate "devise Admin"
run "gem install compass"
run "compass init --using blueprint --app rails --css-dir public/stylesheets"
generate "rspec:install" unless config["no_rspec"]
generate "cucumber:install --capybara --rspec --spork" unless config["no_cucumber"]
generate "pickle --path --email" unless config["no_cucumber"]
generate "friendly_id" unless config["no_friendly_id"]
generate "formtastic:install" unless config["no_formtastic"]
generate "devise:install" unless config["no_devise"]
generate "devise User" unless config["no_devise"]
generate "devise Admin" unless config["no_devise"]
run "gem install compass" unless config["no_compass"]
run "compass init --using blueprint --app rails --css-dir public/stylesheets" unless config["no_compass"]

run "rm public/stylesheets/*"

get "http://github.com/rails/jquery-ujs/raw/master/src/rails.js", "public/javascripts/rails.js"
get "http://github.com/dcrec1/rails3_template/raw/master/gitignore" ,".gitignore"
get "http://github.com/dcrec1/rails3_template/raw/master/screen.scss", "app/stylesheets/screen.scss"
get "http://github.com/dcrec1/rails3_template/raw/master/print.scss", "app/stylesheets/print.scss"
get "http://github.com/dcrec1/rails3_template/raw/master/application.html.haml", "app/views/layouts/application.html.haml"
get "http://github.com/dcrec1/rails3_template/raw/master/factory_girl.rb", "features/support/factory_girl.rb"
get "http://github.com/dcrec1/rails3_template/raw/master/devise_steps.rb", "features/step_definitions/devise_steps.rb"
get "http://github.com/dcrec1/rails3_template/raw/master/remarkable.rb", "spec/support/remarkable.rb"
get "http://github.com/dcrec1/rails3_template/raw/master/users.rb", "spec/support/factories/users.rb"
get "http://github.com/dcrec1/rails3_template/raw/master/build.rake", "lib/tasks/build.rake"
get "http://github.com/dcrec1/rails3_template/raw/master/build.sh", "build.sh"
get "http://github.com/dcrec1/rails3_template/raw/master/overlay.png", "public/images/overlay.png"
get "http://github.com/dcrec1/rails3_template/raw/master/newrelic.yml", "config/newrelic.yml"
get "http://github.com/dcrec1/rails3_template/raw/master/hoptoad.rb", "config/initializers/hoptoad.rb"
get "http://github.com/dcrec1/rails3_template/raw/master/htaccess", "public/.htaccess"
get "http://github.com/dcrec1/rails3_template/raw/master/asset_packages.yml", "config/asset_packages.yml"
get "http://github.com/dcrec1/rails3_template/raw/master/grid.png", "public/images/grid.png"

create_file 'config/deploy.rb', <<-DEPLOY
application = '#{app_name}'
repository = ''
hosts = %w()
get "#{config['root_url']}/rails3_template/raw/master/gitignore" ,".gitignore"
get "#{config['root_url']}/rails3_template/raw/master/screen.scss", "app/stylesheets/screen.scss"
get "#{config['root_url']}/rails3_template/raw/master/print.scss", "app/stylesheets/print.scss"
get "#{config['root_url']}/rails3_template/raw/master/application.html.haml", "app/views/layouts/application.html.haml"
get "#{config['root_url']}/rails3_template/raw/master/factory_girl.rb", "features/support/factory_girl.rb"
get "#{config['root_url']}/rails3_template/raw/master/devise_steps.rb", "features/step_definitions/devise_steps.rb"
get "#{config['root_url']}/rails3_template/raw/master/remarkable.rb", "spec/support/remarkable.rb"
get "#{config['root_url']}/rails3_template/raw/master/users.rb", "spec/support/factories/users.rb"
get "#{config['root_url']}/rails3_template/raw/master/build.rake", "lib/tasks/build.rake"
get "#{config['root_url']}/rails3_template/raw/master/build.sh", "build.sh"
get "#{config['root_url']}/rails3_template/raw/master/overlay.png", "public/images/overlay.png"
get "#{config['root_url']}/rails3_template/raw/master/newrelic.yml", "config/newrelic.yml"
get "#{config['root_url']}/rails3_template/raw/master/hoptoad.rb", "config/initializers/hoptoad.rb"
get "#{config['root_url']}/rails3_template/raw/master/htaccess", "public/.htaccess"
get "#{config['root_url']}/rails3_template/raw/master/asset_packages.yml", "config/asset_packages.yml"
get "#{config['root_url']}/rails3_template/raw/master/grid.png", "public/images/grid.png"

unless config[:no_inploy]
create_file 'config/deploy.rb', <<-DEPLOY
application = '#{app_name}'
repository = ''
hosts = %w()
DEPLOY

end
append_file 'Rakefile', <<-METRIC_FU

MetricFu::Configuration.run do |config|
Expand Down