Skip to content

Instantly share code, notes, and snippets.

@maxwofford
Created March 9, 2023 15:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxwofford/7cfdb87de3c6003a1da60c2327368dd4 to your computer and use it in GitHub Desktop.
Save maxwofford/7cfdb87de3c6003a1da60c2327368dd4 to your computer and use it in GitHub Desktop.
# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby File.read(File.join(File.dirname(__FILE__), ".ruby-version")).strip
gem "dotenv-rails", groups: [:development, :test]
# gem 'sassc-rails' # required for rails 6
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem "rails" # rails 7
# Use postgresql as the database for Active Record
gem "pg"
# Use Puma as the app server
gem "puma"
# Use SCSS for stylesheets
gem "sassc-rails"
# Include jQuery
gem "jquery-rails"
# Use Terser as compressor for JavaScript assets
gem "terser"
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem "react-rails"
# See https://github.com/rails/execjs#readme for more supported runtimes
# Due to a bug in mini_racer >=0.5.0 running on GitHub Actions, we've had to
# roll back to mini_racer 0.4.0: https://github.com/rubyjs/mini_racer/issues/218.
gem "mini_racer"
# Turbo makes navigating your web application faster. Read more: https://github.com/hotwired/turbo
gem "turbo-rails"
# Use Redis adapter to run Action Cable in production
gem "redis"
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
gem "httparty"
# For Plaid integration
gem "plaid"
# And Stripe...
gem "stripe"
# And AWS usage...
gem "aws-sdk-s3", require: false
# And our own API...
gem "faraday"
# net-http is required in top level Gemfile to avoid these warnings
# /usr/local/lib/ruby/2.7.0/net/protocol.rb:66: warning: already initialized constant Net::ProtocRetryError
# /bundle/ruby/2.7.0/gems/net-protocol-0.1.3/lib/net/protocol.rb:68: warning: previous definition of ProtocRetryError was here
# https://github.com/ruby/net-imap/issues/16
gem "net-http"
gem "uri"
# Reduces boot times through caching; required in config/boot.rb
gem "bootsnap", require: false
# Allow un-deletions
gem "acts_as_paranoid"
# friendly ids in URLs
gem "friendly_id"
# Email validation!
gem "validates_email_format_of"
# Phone validation!
gem "phonelib"
# Rounding dates
gem "rounding"
# Checks!
gem "lob"
# Jobs!
gem "sidekiq"
# Authorization!
gem "pundit"
# Helper for automatically adding links to rendered text
gem "rinku", require: "rails_rinku"
# Allow Markdown for views
gem "maildown"
# Generating QR codes for donation pages
gem "rqrcode"
# For Excel data exports... the custom ref is from
# https://github.com/straydogstudio/axlsx_rails/blob/ce5b69e4ac46f4a84f4b9194d01080f6f626fbcd/README.md
gem "caxlsx"
gem "caxlsx_rails"
gem "rubyzip"
# Manage CORS
gem "rack-cors"
# Converting HTML to PDFs
gem "wicked_pdf"
# Markdown in Comments
gem "redcarpet"
# Localize to user's timezone
gem "local_time"
# Calculate dates with business days
gem "business_time"
# Image Processing for ActiveStorage
gem "image_processing"
gem "mini_magick"
# Pagination
gem "api-pagination"
gem "kaminari"
# Google (GSuite)
gem "google-apis-admin_directory_v1"
# Validations on receipt files
gem "active_storage_validations"
# Feature-flags
gem "flipper"
gem "flipper-active_record"
gem "flipper-ui"
# Send SMS messages
gem "twilio-ruby"
group :development, :test do
gem "erb_lint", require: false
gem "relaxed-rubocop"
gem "rspec-rails"
gem "rubocop"
gem "webdrivers"
# Static analysis tool that devs can manually trigger
# https://github.com/presidentbeef/brakeman
gem "brakeman"
end
group :development, :staging do
# Prints out how many SQL queries were executed
gem 'query_count'
end
group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem "listen"
gem "web-console"
# Preview emails
gem "letter_opener_web"
# Generate PDFs from HTML. Version must match the wkhtmltopdf Heroku buildpack version (0.12.3 by default)
gem "wkhtmltopdf-binary"
# Ruby language server
gem "solargraph", require: false
gem "solargraph-rails", require: false
# For https://marketplace.visualstudio.com/items?itemName=tomclose.format-erb
gem 'htmlbeautifier', require: false
# adds comments to models with database fields
gem 'annotate'
# for running webpack-dev-server and rails server together via Procfile
gem "foreman"
end
group :test do
# Adds support for Capybara system testing and selenium driver
# gem 'capybara', '>= 2.15', '< 4.0'
# gem 'selenium-webdriver'
# Easy installation and use of chromedriver to run system tests with Chrome
# gem 'chromedriver-helper'
# For creating test data in the database
gem 'factory_bot_rails'
# For initializing fake values
gem 'faker'
end
group :development, :test do
# Lets you set a breakpoint with a REPL using binding.pry
gem "pry-byebug"
gem "pry-rails"
end
group :production do
# Performance tracking
gem 'skylight'
# Enable compression in production
# gem "heroku-deflater"
# Heroku language runtime metrics
# https://devcenter.heroku.com/articles/language-runtime-metrics-ruby#add-the-barnes-gem-to-your-application
gem "barnes"
end
gem "aasm" # state machine
gem "ahoy_matey" # event engine
gem "airbrake" # exception tracking
gem "awesome_print"
gem "blazer" # business intelligence tool/dashboard
gem "blind_index" # needed to query and/or guarantee uniqueness for lockbox encrypted fields
gem "byebug", platforms: [:mri, :mingw, :x64_mingw]
gem "chronic"
gem "dry-validation"
gem "geocoder" # lookup lat/lng for Stripe Cards shipment tracking
gem "grape" # API v3
gem 'grape-entity' # For Grape::Entity ( https://github.com/ruby-grape/grape-entity )
gem 'grape-kaminari'
gem 'grape-route-helpers'
gem "grape-swagger" # API v3
gem 'grape-swagger-entity'
gem "hashid-rails"
gem "hiredis"
gem "invisible_captcha"
gem "lockbox" # encrypt partner stripe keys and other sensitive fields
gem "monetize" # for handling human input for money amounts
gem "money-rails" # back cent fields as money objects
gem "namae" # multi-cultural human name parser
gem "paper_trail" # track changes on models
gem "pg_search"
gem 'premailer-rails' # css to inline styles for emails
gem "rack-attack"
gem "safely_block"
gem "selenium-webdriver"
gem "sidekiq-cron" # run sidekiq scheduled tasks
gem "strong_migrations" # protects against risky migrations that could cause application harm on deploy
gem "swagger-blocks"
gem "xxhash" # fast hashing
gem "docusign_esign"
gem "webauthn"
gem "browser"
gem "geo_pattern" # for procedurally generated patterns on Cards
gem "comma"
gem "jsbundling-rails"
gem "rack-mini-profiler"
gem "stackprof" # Used with `rack-mini-profiler` to provide flamegraphs
gem "country_select"
gem "airrecord"
# temporarily remove lab_tech because it's not compatible with rails 7
# gem "lab_tech" # Integrates `scientist` with ActiveRecord for experiment data collection
gem "scientist" # Refactor testing for critical paths
gem "table_print" # Pretty print tables in the console (used with `lab_tech`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment