source 'https://rubygems.org'

ruby '>= 3.1.0', '< 4.0.0'

gem 'rails', '~> 7.2.3'
gem 'rouge', '~> 4.5'
gem 'mini_mime', '~> 1.1.0'
gem "actionpack-xml_parser"
gem 'roadie-rails', '>= 3.2.0'
gem 'marcel'
gem 'mail', '~> 2.8.1'
gem 'nokogiri', '>= 1.18.3'
gem 'i18n', '~> 1.14.1'
gem 'rbpdf', '~> 1.21.4'
gem 'addressable'
gem 'rubyzip', '>= 2.3.0'
gem 'propshaft', '>= 1.1.0'
gem 'rack', '>= 3.1.3'

#  Ruby Standard Gems
gem 'csv', '>= 3.2.8'
gem 'net-imap', '>= 0.4.20'
gem 'net-pop', '>= 0.1.2'
gem 'net-smtp', '>= 0.4.0'

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]

# TOTP-based 2-factor authentication
gem 'rotp', '>= 5.0.0'
gem 'rqrcode'

# HTML pipeline and sanitization
gem "html-pipeline", "~> 2.14.0"
gem "sanitize", ">= 6.0"

# Optional gem for LDAP authentication
group :ldap do
  gem 'net-ldap', '>= 0.19'
end

local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
if File.exist?(local_gemfile)
  eval_gemfile local_gemfile
end

# Load plugins' Gemfiles
Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file|
  eval_gemfile file
end

Dir["#{File.dirname(__FILE__)}/bundler.d/*.rb"].each do |bundle|0
  self.instance_eval(Bundler.read_file(bundle))
end
