Last active
August 29, 2015 14:05
-
-
Save DamirSvrtan/28a28e50d639b9445bbc to your computer and use it in GitHub Desktop.
Rails application generator template
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### 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'" |
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
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?