-
-
Save jschoolcraft/e7683c60a2d64b0ebe8c to your computer and use it in GitHub Desktop.
This file contains hidden or 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 | |
bin_setup_file = <<-FILE | |
#!/bin/sh | |
bundle install | |
bundle exec rake db:setup | |
FILE | |
create_file 'bin/setup', bin_setup_file | |
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'" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment