├── .gitignore ├── README.textile └── template.rb /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | -------------------------------------------------------------------------------- /README.textile: -------------------------------------------------------------------------------- 1 | Whenever you want to create a new project, just do: 2 | 3 |
rails new app_name -d postgresql -S -T -m https://github.com/dcrec1/rails6_template/raw/master/template.rb
4 | 5 | Change app_name for your project name. You can configure what you need and run rake db:migrate to get started. 6 | -------------------------------------------------------------------------------- /template.rb: -------------------------------------------------------------------------------- 1 | def commit(name, gem: false, group: false, generators: [], github: nil) 2 | gem_params = github ? { github: github } : {} 3 | group ? gem_group(*group) { gem name, gem_params } : gem(name, gem_params) if gem 4 | generators.each { |generator| after_bundle { generate *generator } } 5 | yield if block_given? 6 | git add: '.' 7 | git commit: "-am 'add #{name}'" 8 | end 9 | 10 | git :init 11 | git add: '.' 12 | git commit: "-am 'Initial commit'" 13 | 14 | commit 'haml', gem: true 15 | 16 | commit 'devise', gem: true, generators: ['devise:install', ['devise', 'Admin']] 17 | 18 | commit 'friendly_id', gem: true, generators: %w(friendly_id) 19 | commit 'rspec-rails', gem: true, group: [:development, :test], generators: %w(rspec:install) 20 | commit 'spring-commands-rspec', gem: true, group: :development 21 | commit 'factory_bot', gem: true, group: :test 22 | commit 'capybara', gem: true, group: :test 23 | commit 'simple_form', gem: true, generators: [['simple_form:install', '--bootstrap']] 24 | commit 'binding_of_caller', gem: true, group: :development 25 | commit 'better_errors', gem: true, group: :development 26 | commit 'inherited_resources', gem: true, github: 'josevalim/inherited_resources' 27 | commit 'rubocop-rails', gem: true, group: :development 28 | commit 'simplecov', gem: true, group: :test do 29 | run 'touch .gitignore' 30 | run 'echo coverage >> .gitignore' 31 | end 32 | commit 'selenium-webdriver', gem: true, group: :test 33 | commit 'rollbar', gem: true 34 | 35 | commit 'dotenv-rails', gem: true, group: :development do 36 | run 'touch .env' 37 | end 38 | 39 | commit 'Procfile' do 40 | file 'Procfile', <<-PROCFILE 41 | db: postgres -D /usr/local/var/postgres 42 | redis: redis-server /usr/local/etc/redis.conf 43 | web: rails s 44 | PROCFILE 45 | end 46 | commit 'db:bootstrap task' do 47 | file 'lib/tasks/bootstrap.rake', <<-TASK 48 | namespace :db do 49 | desc 'Bootstraps with demo data' 50 | task bootstrap: :environment do 51 | end 52 | end 53 | TASK 54 | end 55 | 56 | commit 'factories file' do 57 | file 'spec/support/factories.rb', <<-FACTORIES 58 | FactoryBot.define do 59 | end 60 | FACTORIES 61 | end 62 | 63 | application <<-GENERATORS 64 | config.generators do |g| 65 | g.assets false 66 | g.helper false 67 | g.controller_specs false 68 | g.request_specs false 69 | g.view_specs false 70 | end 71 | GENERATORS 72 | git add: '.' 73 | git commit: "-am 'configure generators'" 74 | 75 | after_bundle do 76 | rake "db:create db:migrate" 77 | git add: '.' 78 | git commit: "-am 'migrate database'" 79 | 80 | git add: '.' 81 | git commit: "-am 'install binstubs'" 82 | puts <<-CODE 83 | # ADD TO spec/rails_helper.rb 84 | 85 | require 'simplecov' 86 | SimpleCov.formatters = [SimpleCov::Formatter::HTMLFormatter] 87 | SimpleCov.start 88 | 89 | config.include FactoryBot::Syntax::Methods 90 | 91 | config.before :each, type: :system do 92 | driven_by :selenium, using: :headless_chrome 93 | end 94 | CODE 95 | end 96 | --------------------------------------------------------------------------------