Skip to content

Instantly share code, notes, and snippets.

@SomeKay
Forked from DamirSvrtan/app_template.rb
Last active August 29, 2015 14:07
Show Gist options
  • Save SomeKay/b523851257b21a558318 to your computer and use it in GitHub Desktop.
Save SomeKay/b523851257b21a558318 to your computer and use it in GitHub Desktop.
Added slim layout file and removed erb layout file
### 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
File.open('bin/setup', 'w'){|file| file.write(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
File.open('config/database.yml', 'w') do |file|
file.write(ERB.new(database_file).result(binding))
end
# 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 Site title
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'application', 'data-turbolinks-track' => true
= csrf_meta_tags
body
= yield
FILE
File.delete('app/views/layouts/application.html.erb')
File.open('app/views/layouts/application.html.slim', 'w') do |file|
file.write(ERB.new(layout_file).result(binding))
end
# 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
Author

SomeKay commented Sep 30, 2014

I agree completely. :)

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