Skip to content

Instantly share code, notes, and snippets.

@reyesvicente
Forked from dhh/Gemfile
Created August 9, 2020 16:13
Show Gist options
  • Save reyesvicente/2c075849109f225a0acbae5f5bc22396 to your computer and use it in GitHub Desktop.
Save reyesvicente/2c075849109f225a0acbae5f5bc22396 to your computer and use it in GitHub Desktop.

Revisions

  1. David Heinemeier Hansson created this gist Jun 24, 2020.
    134 changes: 134 additions & 0 deletions Gemfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,134 @@
    ruby '2.7.1'

    gem 'rails', github: 'rails/rails'
    gem 'tzinfo-data', '>= 1.2016.7' # Don't rely on OSX/Linux timezone data

    # Action Text
    gem 'actiontext', github: 'basecamp/actiontext', ref: 'okra'
    gem 'okra', github: 'basecamp/okra'

    # Drivers
    gem 'mysql2'
    gem 'sqlite3' # Used for asset generation in BK
    gem 'redis', '~> 4.0'
    gem 'redis_connectable', github: 'basecamp/redis_connectable'
    gem 'redis-namespace'
    gem 'connection_pool'
    gem 'image_processing', '~> 1.2'

    gem 'puma', '>= 4.3.3', github: 'puma/puma'

    # JavaScript and assets
    gem 'webpacker', '~> 5.1.1'
    gem 'sprockets', github: 'rails/sprockets'
    gem 'sprockets-rails', github: 'rails/sprockets-rails'
    gem 'jbuilder', '~> 2.9', '>= 2.9.1', github: 'rails/jbuilder'
    gem 'sassc-rails', '~> 2.1'
    gem 'sassc', '<= 2.1'
    gem 'local_time', '~> 2.0'
    gem 'turbo', github: 'basecamp/turbo'

    # Security
    gem 'bcrypt', '~> 3.1.7'
    gem 'pwned', '~> 2.0'
    gem 'rotp'
    gem 'webauthn'
    gem 'rack-ratelimit', github: 'jeremy/rack-ratelimit'

    # Jobs
    gem 'resque', '~> 2.0.0'
    gem 'resque-multi-job-forks', '~> 0.5'
    gem 'resque-pool', github: 'nevans/resque-pool'
    gem 'resque-scheduler', github: 'resque/resque-scheduler'
    gem 'resque-pause', github: 'basecamp/resque-pause'
    gem 'resque-web', require: 'resque_web'
    gem 'resque-scheduler-web', github: 'mattgibson/resque-scheduler-web'
    gem 'sinatra', github: 'sinatra/sinatra'

    # Storage
    gem 'aws-sdk-s3', '~> 1.48.0'
    gem 'activestorage-redundancy', github: 'basecamp/activestorage-redundancy'
    gem 'activestorage-office-previewer', '~> 0.1'

    # Search
    gem 'elasticsearch-model', github: 'elastic/elasticsearch-rails', branch: '6.x'
    gem 'elasticsearch-rails', github: 'elastic/elasticsearch-rails', branch: '6.x'
    gem 'html_scrubber', github: 'basecamp/html_scrubber'

    # Push notifications
    gem 'aws-sdk-pinpoint'

    # Monitoring
    gem 'easymon', '~> 1.4.2'
    gem 'sentry-raven'

    # Logging/instrumentation
    gem 'rails_structured_logging', github: 'basecamp/rails-structured-logging'
    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
    gem 'rbtrace'
    gem 'stackprof'
    gem 'rack-mini-profiler'
    gem 'flamegraph'

    # Queenbee
    gem 'queenbee', github: 'basecamp/queenbee-plugin'
    gem 'actionpack-xml_parser'
    gem 'countries'

    # vCard parsing
    gem 'pdi', github: 'basecamp/pdi', branch: 'utf-8-default'

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

    # Other
    gem 'rake', github: 'ruby/rake'
    gem 'platform_agent'
    gem 'useragent', github: 'basecamp/useragent'
    gem 'geared_pagination', '>= 1.0.0'
    gem 'rqrcode'
    gem 'base32'
    gem 'httparty'
    gem 'bootsnap', '>= 1.4.2', require: false # Reduces boot times through caching; required in config/boot.rb
    gem 'rspamd', github: 'basecamp/rspamd-ruby'
    gem 'redis_object', github: 'basecamp/redis_object'
    gem 'ruby-progressbar', require: false
    gem 'rinku', require: 'rails_rinku'
    gem 'active_record_encryption', github: 'basecamp/active_record_encryption'
    gem 'simpleidn'

    group :development, :test do
    gem 'byebug'
    gem 'break'
    gem 'spring'

    # Code critics
    gem 'rubocop', '>= 0.72', require: false
    gem 'rubocop-performance', require: false
    gem 'rubocop-rails', require: false
    gem 'scss_lint', '~> 0.50', require: false
    gem 'bundler-audit', '~> 0.4', github: 'basecamp/bundler-audit', branch: 'thor-bump', require: false
    gem 'brakeman', '>= 4.0', require: false
    gem 'benchmark-ips', require: false
    end

    group :development do
    gem 'web-console'
    gem 'listen', '>= 3.0.5', '< 3.2'
    gem 'faker', require: false

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

    group :test do
    gem 'mocha'
    gem 'capybara', '>= 2.15', github: 'teamcapybara/capybara'
    gem 'selenium-webdriver'
    gem 'webmock', github: 'bblimke/webmock'
    gem 'vcr'
    end