You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. source 'https://rubygems.org'
  2. ruby '>= 2.7.0', '< 3.3.0'
  3. gem 'rails', '6.1.7.7'
  4. gem 'rouge', '~> 4.2.0'
  5. gem 'request_store', '~> 1.5.0'
  6. gem 'mini_mime', '~> 1.1.0'
  7. gem "actionpack-xml_parser"
  8. gem 'roadie-rails', '~> 3.1.0'
  9. gem 'marcel'
  10. gem 'mail', '~> 2.8.1'
  11. gem 'nokogiri', '~> 1.15.2'
  12. gem 'i18n', '~> 1.14.1'
  13. gem 'rbpdf', '~> 1.21.3'
  14. gem 'addressable'
  15. gem 'rubyzip', '~> 2.3.0'
  16. # Ruby Standard Gems
  17. gem 'csv', '~> 3.2.6'
  18. gem 'net-imap', '~> 0.3.4'
  19. gem 'net-pop', '~> 0.1.2'
  20. gem 'net-smtp', '~> 0.3.3'
  21. gem 'rexml', require: false if Gem.ruby_version >= Gem::Version.new('3.0')
  22. # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
  23. gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
  24. # TOTP-based 2-factor authentication
  25. gem 'rotp', '>= 5.0.0'
  26. gem 'rqrcode'
  27. # HTML pipeline and sanitization
  28. gem "html-pipeline", "~> 2.13.2"
  29. gem "sanitize", "~> 6.0"
  30. # Optional gem for LDAP authentication
  31. group :ldap do
  32. gem 'net-ldap', '~> 0.17.0'
  33. end
  34. # Optional gem for exporting the gantt to a PNG file
  35. group :minimagick do
  36. gem 'mini_magick', '~> 4.12.0'
  37. end
  38. # Optional Markdown support
  39. group :markdown do
  40. gem 'redcarpet', '~> 3.6.0'
  41. end
  42. # Optional CommonMark support, not for JRuby
  43. group :common_mark do
  44. gem "commonmarker", '~> 0.23.8'
  45. gem 'deckar01-task_list', '2.3.2'
  46. end
  47. # Include database gems for the adapters found in the database
  48. # configuration file
  49. require 'erb'
  50. require 'yaml'
  51. database_file = File.join(File.dirname(__FILE__), "config/database.yml")
  52. if File.exist?(database_file)
  53. yaml_config = ERB.new(IO.read(database_file)).result
  54. database_config = YAML.respond_to?(:unsafe_load) ? YAML.unsafe_load(yaml_config) : YAML.load(yaml_config)
  55. adapters = database_config.values.filter_map {|c| c['adapter']}.uniq
  56. if adapters.any?
  57. adapters.each do |adapter|
  58. case adapter
  59. when 'mysql2'
  60. gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
  61. gem "with_advisory_lock"
  62. when /postgresql/
  63. gem 'pg', '~> 1.5.3', :platforms => [:mri, :mingw, :x64_mingw]
  64. when /sqlite3/
  65. gem 'sqlite3', '~> 1.6.0', :platforms => [:mri, :mingw, :x64_mingw]
  66. when /sqlserver/
  67. gem "tiny_tds", "~> 2.1.2", :platforms => [:mri, :mingw, :x64_mingw]
  68. gem "activerecord-sqlserver-adapter", "~> 6.1.0", :platforms => [:mri, :mingw, :x64_mingw]
  69. else
  70. warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
  71. end
  72. end
  73. else
  74. warn("No adapter found in config/database.yml, please configure it first")
  75. end
  76. else
  77. warn("Please configure your config/database.yml first")
  78. end
  79. group :development do
  80. gem 'listen', '~> 3.3'
  81. gem "yard"
  82. end
  83. group :test do
  84. gem "rails-dom-testing"
  85. gem 'mocha', '>= 2.0.1'
  86. gem 'simplecov', '~> 0.22.0', :require => false
  87. gem "ffi", platforms: [:mingw, :x64_mingw, :mswin]
  88. # For running system tests
  89. gem 'puma'
  90. gem "capybara", ">= 3.39"
  91. if Gem.ruby_version < Gem::Version.new('3.0')
  92. gem "selenium-webdriver", "<= 4.9.0"
  93. gem "webdrivers", require: false
  94. else
  95. gem "selenium-webdriver", ">= 4.11.0"
  96. end
  97. # RuboCop
  98. gem 'rubocop', '~> 1.57.0', require: false
  99. gem 'rubocop-performance', '~> 1.19.0', require: false
  100. gem 'rubocop-rails', '~> 2.22.1', require: false
  101. end
  102. local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
  103. if File.exist?(local_gemfile)
  104. eval_gemfile local_gemfile
  105. end
  106. # Load plugins' Gemfiles
  107. Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file|
  108. eval_gemfile file
  109. end