-
Notifications
You must be signed in to change notification settings - Fork 8
/
Gemfile
152 lines (122 loc) · 4.72 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
source 'https://rubygems.org'
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
gem 'rails', '~> 8.0.0'
# The modern asset pipeline for Rails [https://github.com/rails/propshaft]
gem 'propshaft'
# Use mysql as the database for Active Record
gem 'mysql2', '~> 0.5'
# Use the Puma web server [https://github.com/puma/puma]
gem 'puma', '>= 5.0'
# Bundle and transpile JavaScript [https://github.com/rails/jsbundling-rails]
gem 'jsbundling-rails'
# Hotwire's SPA-like page accelerator [https://turbo.hotwired.dev]
gem 'turbo-rails'
# Hotwire's modest JavaScript framework [https://stimulus.hotwired.dev]
gem 'stimulus-rails'
# Bundle and process CSS [https://github.com/rails/cssbundling-rails]
gem 'cssbundling-rails'
# Build JSON APIs with ease [https://github.com/rails/jbuilder]
# gem "jbuilder"
# Use Active Model has_secure_password [https://guides.rubyonrails.org/active_model_basics.html#securepassword]
# gem "bcrypt", "~> 3.1.7"
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: %i[ windows jruby ]
# Use the database-backed adapters for Rails.cache and Active Job
gem 'solid_cache'
gem 'solid_queue'
# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', require: false
# Deploy this application anywhere as a Docker container [https://kamal-deploy.org]
gem 'kamal', require: false
# Add HTTP asset caching/compression and X-Sendfile acceleration to Puma [https://github.com/basecamp/thruster/]
gem 'thruster', require: false
# Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images]
# gem "image_processing", "~> 1.2"
group :development, :test do
# See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
gem 'debug', platforms: %i[ mri windows ], require: 'debug/prelude'
# Static analysis for security vulnerabilities [https://brakemanscanner.org/]
gem 'brakeman', require: false
# Omakase Ruby styling [https://github.com/rails/rubocop-rails-omakase/]
gem 'rubocop-rails-omakase', require: false
end
group :development do
# Use console on exceptions pages [https://github.com/rails/web-console]
gem 'web-console'
end
group :test do
# Use system testing [https://guides.rubyonrails.org/testing.html#system-testing]
gem 'capybara'
gem 'selenium-webdriver'
end
###################
# Our stuff
###################
# Needs to be as early as possible to do it's job
gem 'dotenv-rails', require: 'dotenv/load' # , groups: [:development, :test] # Load env variables in dev
# Views
gem 'haml-rails', '~> 2.0' # We use HAML for templates instead of erb
gem 'jb' # for json templates, simpler and faster than jbuilder
gem 'kaminari' # Pagination
gem 'oai' # OAI-PMH
gem 'rexml' # OAI needs it https://github.com/code4lib/ruby-oai/issues/68
# Analytics and instrumentation
gem 'sentry-rails'
gem 'sentry-ruby'
# AAA
gem 'cancancan' # Authorisation
gem 'devise' # Authentication
gem 'doorkeeper' # API auth/Oauth2
gem 'recaptcha' # Avoid fake registrations
# Database improvements
gem 'nilify_blanks' # Convert empty strings to NULL in the DB where possible
gem 'paper_trail' # Keep an audit trail of all the changes
# Background processing
gem 'aws-sdk-rails' # Send emails via SES
gem 'aws-sdk-s3' # Talk to the catalog
# Admin Dashboard
gem 'activeadmin'
gem 'mission_control-jobs' # Jobs dashboard
gem 'country_select'
# Graphql
gem 'graphiql-rails' # , '1.8.0' # https://github.com/rmosolgo/graphiql-rails/issues/106
gem 'graphql'
# Search
gem 'faraday_middleware-aws-sigv4'
gem 'opensearch-ruby'
gem 'rails-reverse-proxy' # so we can get to opensearch dashboard
gem 'searchjoy'
gem 'searchkick'
# Other
gem 'roo' # Spreadsheet interface
gem 'roo-xls' # Add excel support to roo
gem 'rubyzip' # Zip the large CSV files before emailing
gem 'rufus-scheduler' # Cron
gem 'rack-cors' # API
group :development, :test do
gem 'rails-controller-testing'
gem 'rspec-rails'
end
group :development do
gem 'guard'
gem 'guard-rails', require: false
gem 'guard-rspec', require: false
gem 'annotaterb' # Annotate models with schema
gem 'letter_opener' # Open emails in browser during development
gem 'traceroute' # Helps find unused routes and controller actions
gem 'rubocop-graphql', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rake', require: false
gem 'rubocop-rspec', require: false
gem 'rubocop-rspec_rails', require: false
gem 'rubocop-capybara', require: false
gem 'rubocop-factory_bot', require: false
gem 'solargraph', require: false
gem 'sorbet', require: false
gem 'tapioca', require: false
end
group :test do
gem 'database_cleaner'
gem 'factory_bot_rails'
gem 'json_schemer' # Validate DOI against schema
end