├── .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 |
--------------------------------------------------------------------------------