Skip to content

Instantly share code, notes, and snippets.

@andrewmcodes
Created July 11, 2020 21:25
Show Gist options
  • Select an option

  • Save andrewmcodes/55b7c37ad3801ec8d7118e82f8b2505f to your computer and use it in GitHub Desktop.

Select an option

Save andrewmcodes/55b7c37ad3801ec8d7118e82f8b2505f to your computer and use it in GitHub Desktop.

Revisions

  1. andrewmcodes created this gist Jul 11, 2020.
    214 changes: 214 additions & 0 deletions Gemfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,214 @@
    # Generated with https://github.com/ivantsepp/annotate_gem/

    ruby '2.7.1'

    # Full-stack web application framework. (https://rubyonrails.org)
    gem 'rails', github: 'rails/rails'
    # Timezone Data for TZInfo (https://tzinfo.github.io)
    gem 'tzinfo-data', '>= 1.2016.7' # Don't rely on OSX/Linux timezone data

    # ==== Action Text ====
    # Rich text framework. (https://rubyonrails.org)
    gem 'actiontext', github: 'basecamp/actiontext', ref: 'okra'
    gem 'okra', github: 'basecamp/okra'

    # ==== Drivers ====
    # A simple, fast Mysql library for Ruby, binding to libmysql (https://github.com/brianmario/mysql2)
    gem 'mysql2'
    # This module allows Ruby programs to interface with the SQLite3 database engine (http://www.sqlite.org) (https://github.com/sparklemotion/sqlite3-ruby)
    gem 'sqlite3' # Used for asset generation in BK
    # A Ruby client library for Redis (https://github.com/redis/redis-rb)
    gem 'redis', '~> 4.0'
    gem 'redis_connectable', github: 'basecamp/redis_connectable'
    # Namespaces Redis commands. (http://github.com/resque/redis-namespace)
    gem 'redis-namespace'
    # Generic connection pool for Ruby (https://github.com/mperham/connection_pool)
    gem 'connection_pool'
    # High-level wrapper for processing images for the web with ImageMagick or libvips. (https://github.com/janko/image_processing)
    gem 'image_processing', '~> 1.2'

    # Puma is a simple, fast, threaded, and highly concurrent HTTP 1.1 server for Ruby/Rack applications (http://puma.io)
    gem 'puma', '>= 4.3.3', github: 'puma/puma'

    # ==== JavaScript and assets ====
    # Use webpack to manage app-like JavaScript modules in Rails (https://github.com/rails/webpacker)
    gem 'webpacker', '~> 5.1.1'
    # Rack-based asset packaging system (https://github.com/rails/sprockets)
    gem 'sprockets', github: 'rails/sprockets'
    # Sprockets Rails integration (https://github.com/rails/sprockets-rails)
    gem 'sprockets-rails', github: 'rails/sprockets-rails'
    # Create JSON structures via a Builder-style DSL (https://github.com/rails/jbuilder)
    gem 'jbuilder', '~> 2.9', '>= 2.9.1', github: 'rails/jbuilder'
    # Integrate SassC-Ruby into Rails. (https://github.com/sass/sassc-rails)
    gem 'sassc-rails', '~> 2.1'
    # Use libsass with Ruby! (https://github.com/sass/sassc-ruby)
    gem 'sassc', '<= 2.1'
    # Rails engine for cache-friendly, client-side local time
    gem 'local_time', '~> 2.0'
    # Turbocharged Rails Engine Generator (https://github.com/stevenh512/turbo)
    gem 'turbo', github: 'basecamp/turbo'

    # ==== Security ====
    # OpenBSD's bcrypt() password hashing algorithm. (https://github.com/codahale/bcrypt-ruby)
    gem 'bcrypt', '~> 3.1.7'
    # Tools to use the Pwned Passwords API. (https://github.com/philnash/pwned)
    gem 'pwned', '~> 2.0'
    # A Ruby library for generating and verifying one time passwords (http://github.com/mdp/rotp)
    gem 'rotp'
    # WebAuthn ruby server library (https://github.com/cedarcode/webauthn-ruby)
    gem 'webauthn'
    # Flexible rate limits for your Rack apps (https://github.com/jeremy/rack-ratelimit)
    gem 'rack-ratelimit', github: 'jeremy/rack-ratelimit'

    # ==== Jobs ====
    # Resque is a Redis-backed queueing system. (http://resque.github.io/)
    gem 'resque', '~> 2.0.0'
    # Have your resque workers process more that one job (https://github.com/stulentsev/resque-multi-job-forks)
    gem 'resque-multi-job-forks', '~> 0.5'
    # quickly and easily fork a pool of resque workers (http://github.com/nevans/resque-pool)
    gem 'resque-pool', github: 'nevans/resque-pool'
    # Light weight job scheduling on top of Resque (http://github.com/resque/resque-scheduler)
    gem 'resque-scheduler', github: 'resque/resque-scheduler'
    # A Resque plugin to add functionality to pause resque jobs through the web interface.
    gem 'resque-pause', github: 'basecamp/resque-pause'
    # Rails-based Resque web interface (https://github.com/resque/resque-web)
    gem 'resque-web', require: 'resque_web'
    # This gem provides tabs in Resque Web for managing Resque Scheduler. (https://github.com/mattgibson/resque-scheduler-web)
    gem 'resque-scheduler-web', github: 'mattgibson/resque-scheduler-web'
    # Classy web-development dressed in a DSL (http://sinatrarb.com/)
    gem 'sinatra', github: 'sinatra/sinatra'

    # Storage
    # AWS SDK for Ruby - Amazon S3 (https://github.com/aws/aws-sdk-ruby)
    gem 'aws-sdk-s3', '~> 1.48.0'
    gem 'activestorage-redundancy', github: 'basecamp/activestorage-redundancy'
    # Active Storage previewer for Microsoft Office files based on LibreOffice (https://github.com/basecamp/activestorage-office-previewer)
    gem 'activestorage-office-previewer', '~> 0.1'

    # Search
    # ActiveModel/Record integrations for Elasticsearch. (https://github.com/elasticsearch/elasticsearch-rails/)
    gem 'elasticsearch-model', github: 'elastic/elasticsearch-rails', branch: '6.x'
    # Ruby on Rails integrations for Elasticsearch. (https://github.com/elasticsearch/elasticsearch-rails/)
    gem 'elasticsearch-rails', github: 'elastic/elasticsearch-rails', branch: '6.x'
    gem 'html_scrubber', github: 'basecamp/html_scrubber'

    # Push notifications
    # AWS SDK for Ruby - Amazon Pinpoint (http://github.com/aws/aws-sdk-ruby)
    gem 'aws-sdk-pinpoint'

    # Monitoring
    # Simple availability checks for your rails app (https://github.com/basecamp/easymon)
    gem 'easymon', '~> 1.4.2'
    # A gem that provides a client interface for the Sentry error logger (https://github.com/getsentry/raven-ruby)
    gem 'sentry-raven'

    # Logging/instrumentation
    gem 'rails_structured_logging', github: 'basecamp/rails-structured-logging'
    # Make full request logs accessible via web UI (https://github.com/basecamp/full_request_logger)
    gem 'full_request_logger', github: 'basecamp/full_request_logger'
    gem 'critter', '~> 0.3.0', github: 'basecamp/critter', require: false
    gem 'activejob-stats', github: 'basecamp/activejob-stats'

    # Profiling/troubleshooting
    # rbtrace: like strace but for ruby code (http://github.com/tmm1/rbtrace)
    gem 'rbtrace'
    # sampling callstack-profiler for ruby 2.1+ (http://github.com/tmm1/stackprof)
    gem 'stackprof'
    # Profiles loading speed for rack applications. (https://miniprofiler.com)
    gem 'rack-mini-profiler'
    # Flamegraph support for arbitrary ruby apps (https://github.com/SamSaffron/flamegraph)
    gem 'flamegraph'

    # Queenbee
    # Gem to send e-commerce orders to the Queenbee central app. (https://github.com/olimart/queenbee-ruby)
    gem 'queenbee', github: 'basecamp/queenbee-plugin'
    # XML parameters parser for Action Pack (removed from core in Rails 4.0) (http://www.rubyonrails.org)
    gem 'actionpack-xml_parser'
    # Gives you a country object full of all sorts of useful information. (http://github.com/hexorx/countries)
    gem 'countries'

    # vCard parsing
    # Ruby wrapper for invoking Pentaho Data Integration (https://github.com/bluemarblepayroll/pdi)
    gem 'pdi', github: 'basecamp/pdi', branch: 'utf-8-default'

    # Supervised rails console in production environments
    gem 'console1984', github: 'basecamp/console1984'

    # Other
    # Rake is a Make-like program implemented in Ruby (https://github.com/ruby/rake)
    gem 'rake', github: 'ruby/rake'
    # Parse user agent to deduce the platform. (https://github.com/basecamp/platform_agent)
    gem 'platform_agent'
    # HTTP User Agent parser (http://github.com/josh/useragent)
    gem 'useragent', github: 'basecamp/useragent'
    # Paginate Active Record sets at variable speeds (https://github.com/basecamp/geared_pagination)
    gem 'geared_pagination', '>= 1.0.0'
    # A library to encode QR Codes (https://github.com/whomwah/rqrcode)
    gem 'rqrcode'
    # Ruby extension for base32 encoding and decoding
    gem 'base32'
    # Makes http fun! Also, makes consuming restful web services dead easy. (https://github.com/jnunemaker/httparty)
    gem 'httparty'
    # Boot large ruby/rails apps faster (https://github.com/Shopify/bootsnap)
    gem 'bootsnap', '>= 1.4.2', require: false # Reduces boot times through caching; required in config/boot.rb
    gem 'rspamd', github: 'basecamp/rspamd-ruby'
    # Maps arbitrary objects to a Redis store with indices and smart retrieval and storage mechanisms.
    gem 'redis_object', github: 'basecamp/redis_object'
    # Ruby/ProgressBar is a flexible text progress bar library for Ruby. (https://github.com/jfelchner/ruby-progressbar)
    gem 'ruby-progressbar', require: false
    # Mostly autolinking (https://github.com/vmg/rinku)
    gem 'rinku', require: 'rails_rinku'
    # Transparent ActiveRecord encryption (https://github.com/alpaca-tc/active_record_encryption)
    gem 'active_record_encryption', github: 'basecamp/active_record_encryption'
    # Punycode ACE to unicode UTF-8 (and vice-versa) string conversion. (https://github.com/mmriis/simpleidn)
    gem 'simpleidn'

    group :development, :test do
    # Ruby fast debugger - base + CLI (https://github.com/deivid-rodriguez/byebug)
    gem 'byebug'
    # Lightweight Ruby debugger (https://github.com/gsamokovarov/break)
    gem 'break'
    # Rails application preloader (https://github.com/rails/spring)
    gem 'spring'

    # Code critics
    # Automatic Ruby code style checking tool. (https://github.com/rubocop-hq/rubocop)
    gem 'rubocop', '>= 0.72', require: false
    # Automatic performance checking tool for Ruby code. (https://github.com/rubocop-hq/rubocop-performance)
    gem 'rubocop-performance', require: false
    # Automatic Rails code style checking tool. (https://github.com/rubocop-hq/rubocop-rails)
    gem 'rubocop-rails', require: false
    # SCSS lint tool (https://github.com/sds/scss-lint)
    gem 'scss_lint', '~> 0.50', require: false
    # Patch-level verification for Bundler (https://github.com/rubysec/bundler-audit#readme)
    gem 'bundler-audit', '~> 0.4', github: 'basecamp/bundler-audit', branch: 'thor-bump', require: false
    # Security vulnerability scanner for Ruby on Rails. (https://brakemanscanner.org)
    gem 'brakeman', '>= 4.0', require: false
    # An iterations per second enhancement to Benchmark. (https://github.com/evanphx/benchmark-ips)
    gem 'benchmark-ips', require: false
    end

    group :development do
    # A debugging tool for your Ruby on Rails applications. (https://github.com/rails/web-console)
    gem 'web-console'
    # Listen to file modifications (https://github.com/guard/listen)
    gem 'listen', '>= 3.0.5', '< 3.2'
    # Easily generate fake data (https://github.com/faker-ruby/faker)
    gem 'faker', require: false

    # Deploys, local CI
    gem 'haybales', github: 'basecamp/haybales'
    end

    group :test do
    # Mocking and stubbing library (https://mocha.jamesmead.org)
    gem 'mocha'
    # Capybara aims to simplify the process of integration testing Rack applications, such as Rails, Sinatra or Merb (https://github.com/teamcapybara/capybara)
    gem 'capybara', '>= 2.15', github: 'teamcapybara/capybara'
    # The next generation developer focused tool for automated testing of webapps (https://github.com/SeleniumHQ/selenium)
    gem 'selenium-webdriver'
    # Library for stubbing HTTP requests in Ruby. (http://github.com/bblimke/webmock)
    gem 'webmock', github: 'bblimke/webmock'
    # Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests. (https://relishapp.com/vcr/vcr/docs)
    gem 'vcr'
    end