I make a lot of new Rails apps as I do a lot of tutorials and training and demo apps. I know that rails new has a bunch of flags to turn off gems and features, but what I want is a flag to leave the gems & features as-is but exclude all of the (slightly annoying) comments from the Gemfile.
What’s most annoying is clicking into each comment, interspersed between the gem lines, and deleting them over and over again for each new app. And frankly, they read like jr-developer comments that you wouldn’t normally put in a codebase.
“Use SCSS” proceeds the line gem 'sass-rails', '>= 6'
… duh
at least the webpacker comment has a link to find more information. And then the rest of the comments read like sales information… like the Rails team is trying to sell me these Gems! Gems for sale! Turbolinks makes your application faster! Gems for sale! Build JSON APIs with ease! Gems for sale!
Like, Rails has been around a long time. the default gems are opinionated. everyone knows they can remove the defaults. Fine.
I’m just like every time I do rails new
… the first thing I do is click line-by-line to remove these annoying comments. that’s my WTF rails.
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.6.4'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0.3'
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'
# Use Puma as the app server
gem 'puma', '~> 4.1'
# Use SCSS for stylesheets
gem 'sass-rails', '>= 6'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem 'webpacker', '~> 4.0'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.7'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Active Storage variant
# gem 'image_processing', '~> 1.2'
# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.2', require: false
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'web-console', '>= 3.3.0'
gem 'listen', '~> 3.2'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
group :test do
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '>= 2.15'
gem 'selenium-webdriver'
# Easy installation and use of web drivers to run system tests with browsers
gem 'webdrivers'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]