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.

Gemfile 3.5KB

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