# frozen_string_literal: true
source 'https://rubygems.org'

ruby '2.7.5'

# Core Gems
gem 'rails', '6.1.7.1'
gem 'puma', '4.3.12'
gem 'sass-rails', '5.1.0'
gem 'uglifier', '4.2.0'
gem 'mini_racer', '0.3.1'
gem 'bootstrap', '4.6.0'
gem 'jquery-rails', '4.4.0'
gem 'turbolinks', '5.2.1'
gem 'dotenv-rails', '2.7.6'
gem 'spring-watcher-listen', '2.0.1'

# Database / Active Record
gem 'pg', '1.2.3'
gem 'mysql2', '0.5.3'
gem 'discard', '1.2.0'
gem 'delayed_job_active_record', '4.1.6'
gem 'active_model_serializers', '0.10.12'

# Security
gem 'rack-cors', '1.1.1'
gem 'ruby-mailchecker', '4.0.11'
gem 'hcaptcha', '7.1.0'
gem 'useragent', '0.16.10'
gem 'rack-attack', '6.5.0'
gem 'secure_headers', '6.3.3'
gem 'jwt', '2.2.3'
gem 'pundit', '2.2.0'

# Monitoring / Performance
gem 'ddtrace', '0.54.2'
gem 'health_check', '3.0.0'
gem 'google-protobuf', '3.19.6'
gem 'actionpack-cloudflare', '1.1.0'

# Caching
gem 'hiredis', '0.6.3'
gem 'redis', '4.6.0'
gem 'batch-loader', '1.4.1'

# Misc
gem 'sneakers', '2.12.0'
gem 'httparty', '0.21.0'
gem 'aws-sdk-s3', '1.92.0'

# Testing
group :test, :development do
  gem 'faker', '2.22.0'
  gem 'bunny-mock', '1.7.0'
  gem 'rspec-rails', '5.0.2'
  gem 'rails-controller-testing', '1.0.5'
  gem 'factory_bot_rails', '6.1.0'
  gem 'shoulda-matchers', '4.5.1'
  gem 'simplecov', '0.21.2'
  gem 'webmock', '3.12.2'
  gem 'pundit-matchers', '1.6.0'
end

# NexusMods Gems
gem 'nexus_cqrs', '0.4.6'
gem 'nexus_domain_events', '1.1.2'