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

ruby '3.2.2'

# Core Gems
gem 'rails', '7.0.7.2'
gem 'puma', '6.4.2'
gem 'sass-rails', '5.1.0'
gem 'uglifier', '4.2.0'
gem 'mini_racer', '0.8.0'
gem 'bootstrap', '4.6.0'
gem 'jquery-rails', '4.4.0'
gem 'turbolinks', '5.2.1'
gem 'dotenv-rails', '2.8.1'
gem 'spring-watcher-listen', '2.0.1'

# Database / Active Record
gem 'pg', '1.5.3'
gem 'mysql2', '0.5.5'
gem 'discard', '1.2.1'
gem 'delayed_job_active_record', '4.1.7'
gem 'active_model_serializers', '0.10.13'

# Security
gem 'rack-cors', '2.0.1'
gem 'ruby-mailchecker', '5.0.9'
gem 'hcaptcha', '7.1.0'
gem 'useragent', '0.16.10'
gem 'rack-attack', '6.6.1'
gem 'secure_headers', '6.5.0'
gem 'jwt', '2.7.1'
gem 'pundit', '2.2.0'

# Seeding
gem 'nexus_seed', '0.2.30'

# Monitoring / Performance
gem 'ddtrace', '1.20.0'
gem 'health_check', '3.1.0'
gem 'nexus_semantic_logger', '1.12.3'
gem 'actionpack-cloudflare', '1.1.0'

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

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

# Testing
group :test, :development do
  gem 'faker', '2.22.0'
  gem 'bunny-mock', '1.7.0'
  gem 'rspec-rails', '6.0.3'
  gem 'rails-controller-testing', '1.0.5'
  gem 'factory_bot_rails', '6.2.0'
  gem 'shoulda-matchers', '4.5.1'
  gem 'simplecov', '0.21.2'
  gem 'simplecov-cobertura', '2.1.0'
  gem 'webmock', '3.14.0'
  gem 'pundit-matchers', '1.7.0'
end

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