0041af4c94
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.
200 lines
5.3 KiB
Ruby
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
|