22
33source 'https://rubygems.org'
44
5- ruby '>= 2.7 '
5+ ruby '>= 3.3 '
66
77# ===========#
88# CORE RAILS #
99# ===========#
1010
1111# Full-stack web application framework. (http://rubyonrails.org)
12- gem 'rails' , '~> 6 .1'
12+ gem 'rails' , '~> 7 .1'
1313
1414# TODO: Remove this once Rails addresses the issue with its dependency on mimemagic. Mimemagic had
1515# an MIT license but was using some incompatible GPL license code.
1616# Versions of mimemagic that were yanked: https://rubygems.org/gems/mimemagic/versions
1717# Analysis of the issue: https://www.theregister.com/2021/03/25/ruby_rails_code/
1818gem 'mimemagic'
1919
20- # Use sqlite3 as the database for Active Record
21- # gem 'sqlite3', '~> 1.4'
22-
2320# Use Puma as the app server
2421gem 'puma' , group : :puma , require : false
2522
26- # Use SCSS for stylesheets
27- # TODO : might need to move to cssbundling-rails
28- # SEE: https://dev.to/kolide/how-to-migrate-a-rails-6-app-from-sass-rails-to-cssbundling-rails-4l41
29- gem 'sass-rails'
23+ # Use esbuild, rollup.js, or Webpack to bundle your JavaScript, then deliver it via the asset pipeline in Rails
24+ # Read more: https://github.com/rails/jsbundling-rails
25+ gem 'jsbundling-rails'
3026
31- # Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
32- gem 'webpacker'
27+ # Use Tailwind CSS, Bootstrap, Bulma, PostCSS, or Dart Sass to bundle and process your CSS
28+ # Read more: https://github.com/rails/cssbundling-rails
29+ gem 'cssbundling-rails'
3330
3431# Turbo gives you the speed of a single-page web application without having to write any JavaScript..
3532# Read more: https://github.com/hotwired/turbo-rails
@@ -50,13 +47,13 @@ gem 'jbuilder'
5047# Reduces boot times through caching; required in config/boot.rb
5148gem 'bootsnap' , require : false
5249
53- # GEMS ADDED TO HELP HANDLE RAILS MIGRATION FROM 3.x to 4.2
54- # THESE GEMS HELP SUPPORT DEPRACATED FUNCTIONALITY AND WILL LOSE SUPPORT IN
55- # FUTURE VERSIONS WE SHOULD CONSIDER BRINGING THE CODE UP TO DATE INSTEAD
50+ # The ultimate text progress bar library for Ruby!
51+ # (https://github.com/jfelchner/ruby-progressbar)
52+ gem 'ruby-progressbar'
5653
57- # A set of Rails responders to dry up your application
58- # (http ://github.com/plataformatec/responders)
59- # gem "responders"
54+ # Provides Sprockets implementation for Rails 4.x (and beyond) Asset Pipeline.
55+ # https ://github.com/rails/sprockets-rails
56+ gem 'sprockets-rails'
6057
6158# ============== #
6259# ERROR HANDLING #
@@ -119,6 +116,9 @@ gem 'jwt'
119116# OO authorization for Rails (https://github.com/elabs/pundit)
120117gem 'pundit'
121118
119+ # Gem for throttling malicious attacks
120+ gem 'rack-attack' , '~> 6.6' , '>= 6.6.1'
121+
122122# ========== #
123123# UI / VIEWS #
124124# ========== #
@@ -161,23 +161,10 @@ gem 'api-pagination'
161161# STYLESHEETS #
162162# =========== #
163163
164- # Integrate SassC-Ruby into Rails. (https://github.com/sass/sassc-rails)
165- gem 'sassc-rails'
166-
167- # Font-Awesome SASS (https://github.com/FortAwesome/font-awesome-sass)
168- gem 'font-awesome-sass' , '~> 5'
169-
170- # Use webpack to manage app-like JavaScript modules in Rails
171- # (https://github.com/rails/webpacker)
172- # gem "webpacker"
173-
174164# Parse CSS and add vendor prefixes to CSS rules using values from the Can
175165# I Use website. (https://github.com/ai/autoprefixer-rails)
176166gem 'autoprefixer-rails'
177167
178- # Minimal embedded v8 for Ruby (https://github.com/discourse/mini_racer)
179- # gem "mini_racer"
180-
181168# ========= #
182169# EXPORTING #
183170# ========= #
@@ -218,6 +205,15 @@ gem 'dotenv-rails'
218205
219206gem 'activerecord_json_validator'
220207
208+ # We need to freeze the mail gem version as the recently released 2.8.0 triggers an exception
209+ # We will need to check if it's fixed when we migrate to Ruby 3.0/3.1
210+ # See : https://github.com/DMPRoadmap/roadmap/issues/3254
211+ gem 'mail' , '2.7.1'
212+
213+ # This library provides functionality to send internet mail via SMTP, the Simple Mail Transfer Protocol.
214+ # https://github.com/ruby/net-smtp
215+ gem 'net-smtp'
216+
221217# ================================= #
222218# ENVIRONMENT SPECIFIC DEPENDENCIES #
223219# ================================= #
@@ -245,18 +241,10 @@ group :test do
245241 # Guard keeps an eye on your file modifications (https://github.com/guard/guard)
246242 gem 'guard'
247243
248- # Guard gem for RSpec (https://github.com/guard/guard-rspec)
249- # gem 'guard-rspec'
250-
251244 # Library for stubbing HTTP requests in Ruby.
252245 # (http://github.com/bblimke/webmock)
253246 gem 'webmock'
254247
255- # Code coverage for Ruby 1.9+ with a powerful configuration library and
256- # automatic merging of coverage across test suites
257- # (http://github.com/colszowka/simplecov)
258- # gem 'simplecov', require: false
259-
260248 # Strategies for cleaning databases. Can be used to ensure a clean state
261249 # for testing. (http://github.com/DatabaseCleaner/database_cleaner)
262250 gem 'database_cleaner' , require : false
@@ -270,17 +258,9 @@ group :test do
270258
271259 # Adds support for Capybara system testing and selenium driver
272260 gem 'capybara'
273- gem 'selenium-webdriver'
274- # Easy installation and use of web drivers to run system tests with browsers
275- gem 'webdrivers'
276-
277- # Automatically create snapshots when Cucumber steps fail with Capybara
278- # and Rails (http://github.com/mattheworiordan/capybara-screenshot)
279- # gem 'capybara-screenshot'
280261
281- # Browser integration tests are expensive. We can mock external requests
282- # in our tests, but once a browser is involved, we lose control.
283- gem 'capybara-webmock'
262+ # Easy installation and use of web drivers to run system tests with browsers
263+ gem 'selenium-webdriver'
284264
285265 # RSpec::CollectionMatchers lets you express expected outcomes on
286266 # collections of an object in an example.
@@ -292,6 +272,9 @@ group :test do
292272 # This gem brings back assigns to your controller tests as well as assert_template
293273 # to both controller and integration tests.
294274 gem 'rails-controller-testing'
275+
276+ # automating code review
277+ gem 'danger'
295278end
296279
297280group :ci , :development do
@@ -311,23 +294,8 @@ group :ci, :development do
311294 # (gettext and rails-i18n)
312295 gem 'rubocop-i18n'
313296
314- # A collection of RuboCop cops to check for performance optimizations in Ruby code.
315- # gem 'rubocop-performance'
316-
317- # Automatic Rails code style checking tool. A RuboCop extension focused on enforcing
318- # Rails best practices and coding conventions.
319- # gem 'rubocop-rails'
320-
321- # A RuboCop plugin for Rake tasks
322- # gem 'rubocop-rake'
323-
324- # Code style checking for RSpec files. A plugin for the RuboCop code style enforcing
325- # & linting tool.
326- # gem 'rubocop-rspec'
327-
328- # Thread-safety checks via static analysis. A plugin for the RuboCop code style
329- # enforcing & linting tool.
330- # gem 'rubocop-thread_safety'
297+ # Performance checks by Rubocop
298+ gem 'rubocop-performance' , require : false
331299end
332300
333301group :development do
0 commit comments