rails/Gemfile
Hartley McGuire 0041af4c94
Ensure all RubyTracker RenderParsers are tested
Previously, only the PrismRenderParser or RipperRenderParser would be
tested depending on if the Prism gem is available. This meant that
PrismRenderParser was being tested on Ruby 3.3 and RipperRenderParser
was tested on Ruby < 3.3. Additionally, if someone were to add prism to
the rails/rails Gemfile because they wrote a tool that uses it then the
RipperRenderParser would end up completely untested.

This commit is a small refactor to enable testing both RenderParsers in
all Ruby versions so that the prism gem can be added to the Gemfile.
2024-01-24 19:16:59 -05:00

200 lines
5.3 KiB
Ruby

# frozen_string_literal: true
source "https://rubygems.org"
gemspec
gem "minitest", ">= 5.15.0"
# We need a newish Rake since Active Job sets its test tasks' descriptions.
gem "rake", ">= 13"
gem "sprockets-rails", ">= 2.0.0"
gem "propshaft", ">= 0.1.7"
gem "capybara", ">= 3.39"
gem "selenium-webdriver", ">= 4.11.0"
gem "rack-cache", "~> 1.2"
gem "stimulus-rails"
gem "turbo-rails"
gem "jsbundling-rails"
gem "cssbundling-rails"
gem "importmap-rails", ">= 1.2.3"
gem "tailwindcss-rails"
gem "dartsass-rails"
# require: false so bcrypt is loaded only when has_secure_password is used.
# This is to avoid Active Model (and by extension the entire framework)
# being dependent on a binary library.
gem "bcrypt", "~> 3.1.11", require: false
# This needs to be with require false to avoid it being automatically loaded by
# sprockets.
gem "terser", ">= 1.1.4", require: false
# Explicitly avoid 1.x that doesn't support Ruby 2.4+
gem "json", ">= 2.0.0", "!=2.7.0"
# Workaround until Ruby ships with cgi version 0.3.6 or higher.
gem "cgi", ">= 0.3.6", require: false
gem "prism"
group :lint do
gem "syntax_tree", "6.1.1", require: false
end
group :rubocop do
gem "rubocop", ">= 1.25.1", require: false
gem "rubocop-minitest", require: false
gem "rubocop-packaging", require: false
gem "rubocop-performance", require: false
gem "rubocop-rails", require: false
gem "rubocop-md", require: false
# This gem is used in Railties tests so it must be a development dependency.
gem "rubocop-rails-omakase", require: false
end
group :mdl do
gem "mdl", "!= 0.13.0", require: false
end
group :doc do
gem "sdoc", git: "https://github.com/rails/sdoc.git", branch: "main"
gem "rdoc", "~> 6.5"
gem "redcarpet", "~> 3.2.3", platforms: :ruby
gem "w3c_validators", "~> 1.3.6"
gem "rouge"
gem "rubyzip", "~> 2.0"
end
# Active Support
gem "dalli", ">= 3.0.1"
gem "listen", "~> 3.3", require: false
gem "libxml-ruby", platforms: :ruby
gem "connection_pool", require: false
gem "rexml", require: false
gem "msgpack", ">= 1.7.0", require: false
# for railties
gem "bootsnap", ">= 1.4.4", require: false
gem "webrick", require: false
gem "jbuilder", require: false
gem "web-console", require: false
# Action Pack and railties
rack_version = ENV.fetch("RACK", "~> 3.0")
if rack_version != "head"
gem "rack", rack_version
else
gem "rack", git: "https://github.com/rack/rack.git", branch: "main"
end
gem "useragent", require: false
# Active Job
group :job do
gem "resque", require: false
gem "resque-scheduler", require: false
gem "sidekiq", require: false
gem "sucker_punch", require: false
gem "delayed_job", require: false
gem "queue_classic", ">= 4.0.0", require: false, platforms: :ruby
gem "sneakers", require: false
gem "backburner", require: false
gem "delayed_job_active_record", require: false
end
# Action Cable
group :cable do
gem "puma", ">= 5.0.3", require: false
gem "redis", ">= 4.0.1", require: false
gem "redis-namespace"
gem "websocket-client-simple", github: "matthewd/websocket-client-simple", branch: "close-race", require: false
end
# Active Storage
group :storage do
gem "aws-sdk-s3", require: false
gem "google-cloud-storage", "~> 1.11", require: false
gem "azure-storage-blob", "~> 2.0", require: false
gem "image_processing", "~> 1.2"
end
# Action Mailbox
gem "aws-sdk-sns", require: false
gem "webmock"
# Add your own local bundler stuff.
local_gemfile = File.expand_path(".Gemfile", __dir__)
instance_eval File.read local_gemfile if File.exist? local_gemfile
group :test do
gem "minitest-bisect", require: false
gem "minitest-ci", require: false
gem "minitest-retry"
platforms :mri do
gem "stackprof"
gem "debug", ">= 1.1.0", require: false
end
gem "benchmark-ips"
# Needed for Railties tests because it is included in generated apps.
gem "brakeman"
end
platforms :ruby, :windows do
gem "nokogiri", ">= 1.8.1", "!= 1.11.0"
# Needed for compiling the ActionDispatch::Journey parser.
gem "racc", ">=1.4.6", require: false
# Active Record.
gem "sqlite3", "~> 1.6", ">= 1.6.6"
group :db do
gem "pg", "~> 1.3"
gem "mysql2", "~> 0.5"
gem "trilogy", ">= 2.7.0"
end
end
platforms :jruby do
if ENV["AR_JDBC"]
gem "activerecord-jdbcsqlite3-adapter", github: "jruby/activerecord-jdbc-adapter", branch: "master"
group :db do
gem "activerecord-jdbcmysql-adapter", github: "jruby/activerecord-jdbc-adapter", branch: "master"
gem "activerecord-jdbcpostgresql-adapter", github: "jruby/activerecord-jdbc-adapter", branch: "master"
end
else
gem "activerecord-jdbcsqlite3-adapter", ">= 1.3.0"
group :db do
gem "activerecord-jdbcmysql-adapter", ">= 1.3.0"
gem "activerecord-jdbcpostgresql-adapter", ">= 1.3.0"
end
end
end
# Gems that are necessary for Active Record tests with Oracle.
if ENV["ORACLE_ENHANCED"]
platforms :ruby do
gem "ruby-oci8", "~> 2.2"
end
gem "activerecord-oracle_enhanced-adapter", github: "rsim/oracle-enhanced", branch: "master"
end
gem "tzinfo-data", platforms: [:windows, :jruby]
gem "wdm", ">= 0.1.0", platforms: [:windows]
# The error_highlight gem only works on CRuby 3.1 or later.
# Also, Rails depends on a new API available since error_highlight 0.4.0.
# (Note that Ruby 3.1 bundles error_highlight 0.3.0.)
if RUBY_VERSION < "3.2"
gem "error_highlight", ">= 0.4.0", platforms: [:ruby]
end