Skip to content

Instantly share code, notes, and snippets.

@DamirSvrtan
Last active August 29, 2015 14:05
Show Gist options
  • Save DamirSvrtan/28a28e50d639b9445bbc to your computer and use it in GitHub Desktop.
Save DamirSvrtan/28a28e50d639b9445bbc to your computer and use it in GitHub Desktop.
Rails application generator template
### Rails app generator template. Run it:
### rails new _app_name_ -m https://gist.githubusercontent.com/DamirSvrtan/28a28e50d639b9445bbc/raw/app_template.rb
remove_file "README.rdoc"
create_file "README.md", "Development: run ./bin/setup"
run 'mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss'
database_type = ask("Do you want to use postgres or mysql?", limited_to: ["pg", "mysql"])
adapter = if database_type == 'pg'
gem 'pg'
'postgresql'
else
gem 'mysql2'
'mysql2'
end
database_file = <<-FILE
default: &default
adapter: <%= adapter %>
pool: 5
timeout: 5000
host: localhost
username: root
development:
<<: *default
database: <%= @app_name %>_development
password:
test:
<<: *default
database: <%= @app_name %>_test
production:
<<: *default
database: <%= @app_name %>_production
FILE
create_file 'config/database.yml', ERB.new(database_file).result(binding), force: true
# Remove unwanted gems. spring will be added later in the development group of gems
%w(spring coffee-rails sqlite3).each do |unwanted_gem|
gsub_file("Gemfile", /gem '#{unwanted_gem}'.*\n/, '')
end
# Replace erb layout file with slim layout file
layout_file = <<-FILE
doctype html
html
head
title <%= @app_name.titleize %>
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'application', 'data-turbolinks-track' => true
= csrf_meta_tags
body
= yield
FILE
remove_file 'app/views/layouts/application.html.erb'
create_file 'app/views/layouts/application.html.slim', ERB.new(layout_file).result(binding)
# remove commented lines
gsub_file("Gemfile", /#.*\n/, '')
# remove double newlines
gsub_file("Gemfile", /^\n\n/, '')
simple_form_installation = "simple_form:install"
if yes?('Use bootstrap?')
gem 'bootstrap-sass'
simple_form_installation << " --bootstrap"
end
gem 'simple_form'
gem 'slim-rails'
gem 'draper'
gem_group :development do
gem 'spring'
gem 'better_errors'
gem 'binding_of_caller'
gem 'quiet_assets'
gem 'pry-rails'
gem 'bullet'
gem 'traceroute'
gem 'letter_opener'
end
run "bundle install"
generate simple_form_installation
git :init
%w(.sass-cache powder public/system dump.rdb logfile .DS_Store).each do |gitignored|
append_file ".gitignore", gitignored
end
git add: ".", commit: "-m 'Initial commit'"
@SomeKay
Copy link

SomeKay commented Sep 29, 2014

I've added replacing the erb layout file with a slim layout file.
Could you pull it from my fork at https://gist.github.com/bojzi/b523851257b21a558318?

@DamirSvrtan
Copy link
Author

Hey Mr. Weird Haircut, I've merged your changes and added a titleized app name for the HTML tag :) Thnx!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment