# frozen_string_literal: true

source "https://rubygems.org"

ruby ENV["CUSTOM_RUBY_VERSION"] || ">=3.4.3"

gem "rails", "~> 8.1.3"
gem "propshaft"
gem "importmap-rails"
gem "turbo-rails"
gem "stimulus-rails"
gem "jbuilder"
gem "tzinfo-data", platforms: %i[windows jruby]
gem "solid_cache"
gem "solid_queue"
gem "solid_cable"
gem "bootsnap", require: false
gem "kamal", require: false
gem "thruster", require: false
gem "cssbundling-rails"

group :development do
  gem "listen"
  gem "pry-rails"
  gem "web-console"

  # A fully configurable and extendable Git hook manager
  gem "overcommit", require: false

  gem "mailbin"
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem "capybara", ">= 3.37.1", "< 4.0"
  gem "minitest"
  gem "minitest-rails", ">= 6.1.0"
  gem "minitest-reporters"
  gem "selenium-webdriver", ">= 4.20.1"
end

group :development, :test do
  # See https://guides.rubyonrails.org/debugging_rails_applications.html#debugging-with-the-debug-gem
  gem "debug", platforms: %i[mri windows], require: "debug/prelude"

  # Static analysis for security vulnerabilities [https://brakemanscanner.org/]
  gem "brakeman", require: false

  # Omakase Ruby styling [https://github.com/rails/rubocop-rails-omakase/]
  gem "rubocop-rails-omakase", require: false

  gem "i18n-tasks", "~> 1.1.2", require: false
  gem "erb_lint", "~> 0.9.0", require: false
  gem "standard", ">= 1.35.1"
end

gem "rack-cors"
gem "high_voltage"
gem "kramdown", require: false
gem "lockbox"
gem "terser", "~> 1.2"
gem "bootstrap"
gem "json", "~> 3.1" # Legacy carry-over
gem "apipie-rails"
gem "config"
gem "devise", "~> 5.0"
gem "foreman"
gem "lograge"
gem "mail_form", ">= 1.9.0"
gem "oj"
gem "puma"
gem "kaminari", "~> 1.3"
gem "invisible_captcha", "~> 2.3"
gem "devise-i18n"
gem "rails-i18n", "~> 8.1.0"
gem "translation"
gem "local_time"

# For File Uploads
gem "aws-sdk-s3", require: false
gem "azure-blob", "~> 0.9.0", require: false
gem "google-cloud-storage", "~> 1.62", require: false

# Database backends
gem "mysql2"
gem "pg"
gem "sqlite3", force_ruby_platform: true

group :production, :development, :test do
  gem "rack-attack"
end

gem "rollbar"
gem "version", git: "https://github.com/pglombardo/version.git", branch: "master"
gem "madmin"
gem "rotp", "~> 6.4"
gem "rqrcode", "~> 3.2"
gem "turnout2024", require: "turnout"
gem "mission_control-jobs", "~> 1.3.1"
gem "overmind", "~> 2.5", group: :development

gem "dotenv", "~> 3.2"

gem "prometheus_exporter", "~> 2.3"
