-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGemfile
162 lines (142 loc) · 6.6 KB
/
Gemfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# frozen_string_literal: true
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
gem 'rails', '~> 7.0'
gem 'puma', '>= 5.5' # Use Puma as the app server
# gem 'image_processing', '~> 1.2' # Use Active Storage variant
##############################
### Database
##############################
gem 'pg', '~> 1.2' # Use postgresql as the database for Active Record
# gem 'rails-erd', group: :development # Generate an application ERD
gem 'strong_migrations'
##############################
### Assets, Decorators, and Views
##############################
gem 'active_decorator'
gem 'dry-initializer', github: 'dry-rb/dry-initializer'
gem 'lookbook'
gem 'rails_heroicons'
gem 'sass'
gem 'slim-rails'
gem 'turbo-rails', '~> 1.0'
gem 'view_component', require: 'view_component/engine' # https://viewcomponent.org/
gem 'vite_rails'
##############################
# Authorization, Authentication [Roles], and permissions
##############################
gem 'argon2', '>= 2' # https://ankane.org/devise-argon2
gem 'devise' # Rails based user authentication
gem 'devise-security' # Additional security measures for devise
gem 'pretender' # allows superusers to emulate being another user
gem 'pundit' # A slim user authorization library
gem 'valid_email2' # Stronger email validator (Includes RFC, blackist, and whitelist validations)
##############################
# Background jobs and Redis
##############################
gem 'hiredis' # C based adapter for connecting to redis
gem 'redis', '>= 4.5'
gem 'redis-namespace' # Used to namespace Redis Cache entries from Workers
gem 'sidekiq', '>= 6.0' # For scheduling background jobs
gem 'sidekiq-failures' # Shows you a list of failed sidekiq jobs
gem 'sidekiq-scheduler' # Lightweight job scheduler (mimicks cron scheduling)
gem 'sidekiq-status' # View the status of any currently running sidekiq jobs
##############################
# Misc
##############################
gem 'auto_strip_attributes' # Reduce needing to add before_validation hooks to the models to cleanup attributes
gem 'friendly_id'
gem 'jbuilder' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'meta-tags' # Used for adding dynamic titles when switching between pages.
gem 'name_of_person'
gem 'oj' # For faster json generating and parsing
gem 'simple_form' # A DSL to make forms easier to work with
gem 'pagy', '>= 5.5' # An extremely fast pagination alternative
gem 'ransack' # For making sorting and searching of models easy
##############################
### Performance Optimizations
##############################
gem 'attendance' # Speed up for ActiveRecord#present? (removes additional query requests)
gem 'bootsnap', '>= 1.4.4', require: false # Reduces boot times through caching
gem 'fast_blank', platform: :mri # fast implementation of .blank?
##############################
### Security (Data Security)
##############################
gem 'lograge' # For cleaning up your application logs
gem 'logstop' # Keep personally identifiable information (PII) out of your logs
##############################
### Development/Testing gems
##############################
group :development, :test do
gem 'brakeman' # Security Auditing Linter
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: %i[mri mingw x64_mingw]
gem 'factory_bot_rails' # For building fixtures/objects associated with your models
gem 'faker' # For generating fake data for tests
gem 'fasterer', require: false
gem 'rails_best_practices' # for testing for rails best practice methods
gem 'rubocop', require: false
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
gem 'sord' # For building Sorbet RBI type checking based off of inline YARD docs
gem 'foreman' # Process manager used to fire up all the required services for the application
# --- Console cleanup and coloring
gem 'pry', '~> 0.13'
gem 'pry-byebug', '~> 3.9'
gem 'pry-doc'
gem 'pry-rails' # pry console output
gem 'spirit_hands', github: 'dwarburt/spirit_hands' # A combination of pry, awesome_print, hirb, and numerous other console extensions
# --- Linters / Asset testing
gem 'erb_lint', require: false
gem 'scss_lint', require: false
gem 'slim_lint', require: false
# --- Profilers
gem 'rack-mini-profiler'
gem 'memory_profiler'
gem 'stackprof'
end
group :development do
gem 'annotate'
gem 'better_errors' # dev: better error messages
gem 'binding_of_caller'
gem 'bullet'
gem 'letter_opener'
gem 'letter_opener_web'
gem 'listen', ">= 3.0.5"
gem 'spring'
gem 'spring-watcher-listen'
gem 'web-console' # Gives a console interface for bugs during development
gem 'guard', '~> 2.16', '>= 2.16.2'
gem 'guard-bundler', require: false
gem 'guard-shell', require: false
# Generate tailwind templates
gem 'simple_form-tailwind'
gem 'tailwind_views_generator'
end
group :test do
# gem 'active_decorator-rspec' # To make testing decorators easy with rspec
gem 'database_cleaner' # n+1 database test monitoring
gem 'cucumber-rails', require: false
gem 'fuubar'
gem 'parallel_tests' # Used to run your tests in parellel
gem 'pundit-matchers', '~> 1.7'
gem 'rspec-rails', '>= 3.8'
gem 'rspec-sidekiq'
gem 'rails-controller-testing' # , github: 'rails/rails-controller-testing'
gem 'simplecov', require: false # generate html report on the applications test results
gem 'simplecov-tailwindcss', require: false # Cleanup simplecov HTML report with a tailwind template
gem 'shoulda', '>= 4.0' # Write easy to understand and maintainable tests
gem 'test-prof', '~> 1.0' # Performance profiling for tests
gem 'timecop' # Running tests against time
##############################
### integration testing
##############################
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '>= 3.26'
gem 'selenium-webdriver'
gem 'webdrivers', '>= 3.0'
end
gem 'unicode-display_width', '1.8'
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]