rails/Gemfile

198 lines
5.3 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
source "https://rubygems.org"
gemspec
gem "minitest", ">= 5.15.0"
2021-12-16 05:20:38 +08:00
# We need a newish Rake since Active Job sets its test tasks' descriptions.
gem "rake", ">= 13"
Make Sprockets more optional, offer Propshaft as alternative (#43261) * Make Sprockets more optional, offer Propshaft as alternative * Whups, local reference * No longer used * Spacing * Need explicit sprockets-rails inclusion now * Manually require the sprockets railtie * Don't need these changes right now * Kick off another build * Fix tests * DRY up test * Require railtie when using sprockets * Introduce option to skip asset pipeline * No longer relevant * Always have to return * Gone * Add helper for skip_sprockets? * Fix guard statement * Use latest gems * Include propshaft * fix tests for #43261 (#43277) * help fix tests for #43261 skip_sprockets? should not be called on options :skip_sprockets is no longer a value in the option hash, so skip_sprockets? should not be called on it move --asset-pipeline to shared generator skip_sprockets? is defined on app_base, and used in the plugin generator to determine whether to add the engine's assets to the dummy sprockets manifest, so I believe it makes sense to include in both generators Because of this change, I also changed the shared test back to testing against non-sprockets add skip_sprockets to Gemfile template vars Mocking skip_sprockets? in app_base generator fix more generator tests * use skip_sprockets? everywhere * Use latest propshaft * Update `AssetUrlHelper` docs to list both asset pipeline gems (#43328) * Update to latest Propshaft * Bump Propshaft again * Ask for latest * Use latest propshaft Co-authored-by: Hartley McGuire <skipkayhil@gmail.com> Co-authored-by: Richard Macklin <1863540+rmacklin@users.noreply.github.com>
2021-10-09 23:03:05 +08:00
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"
Replace webpack with importmapped Hotwire as default js (#42999) * Turbolinks is being replaced with Hotwire * Make --webpack opt-in * Don't use specific webpacker installers any more in preparation for next Webpacker * Update railties/lib/rails/app_updater.rb Co-authored-by: Alex Ghiculescu <alex@tanda.co> * Trailing whitespace * Convert to Turbo data attribute for tracking * Default is no webpack, no hotwire * Swap out turbolinks references for hotwire * Drop explicit return * Only generate package.json if using webpack * Only create package.json in webpack mode * Only create app/javascript in webpack mode * Generate correct style/js links based on js mode * Fix tests from changed output format Not sure why these are showing up in this PR, though. * Rubocopping * Stick with webpack for the test app for now * Adjust tests * Replace minitest-reporters with minitest-ci (#43016) minitest-reporters is used to create junit xml reports on CI. But when it loads before rails minitest plugin makes `Rails::TestUnitReporter` not being added as a reporter. minitest-ci is now only loaded at ci and does not interferes with rails minitest plugins. And keeps junit reports workings * Too heavy handed to actually run bundle Just like we don't auto-migrate * Pin js frameworks in importmap Instead of having importmap preconfigure it. * Match updated app/javascript path * No need for the explaining comment * Fixes test cases for replace webpack with importmapped Hotwire as default js (#42999) * Fix rubocop issues * Fix more railities test cases * Fix plugin generator railties shared test cases * Fix Action Text install generator asset pipeline spec * They're modules, not files * Let dev use the latest release as well So we don't have to replace unexisting dev releases with latest release * Make Webpack responsible for generating all the JS files it needs Webpacker 6 has already moved from app/javascript to app/packs. * Don't add rails/ujs by default any longer All the ajax/form functionality has been superseded by Turbo. The rest lives in a weird inbetween land we need to address through other means. * Use new importmap location * Switch to using turbo-rails and stimulus-rails directly The hotwire-rails gem does not offer enough value for its indirection * Use latest Webpacker * Prevent version resolution requests from getting swallowed * Use ESM syntax for imports * Move management of yarn, package.json, etc to Webpacker 6 * Update for Webpacker 6 * Move bin/setup addition to Webpacker as well * Remove dead tests * Bump to Webpacker 6.0.0.rc.2 * No longer relevant given the new default is no webpacker * Rely on Webpacker 6 * No longer relevant * No longer relevant * Make cable channel generator work for both webpacker and importmap setups * Fix tests * For tests testing importmap way * Use Webpacker 6 dummy * RuboCopping * One more bump to fix webpack-dev-server * Another bump. Hopefully the last one! * Also enough to not want turbo tracking on * Fix tests * Latest * Fix tests * Fix more tests * Fix tests Co-authored-by: Alex Ghiculescu <alex@tanda.co> Co-authored-by: André Luis Leal Cardoso Junior <andrehjr@gmail.com> Co-authored-by: Abhay Nikam <nikam.abhay1@gmail.com> Co-authored-by: Guillermo Iguaran <guilleiguaran@gmail.com>
2021-08-26 16:39:36 +08:00
gem "stimulus-rails"
gem "turbo-rails"
gem "jsbundling-rails"
gem "cssbundling-rails"
gem "importmap-rails", ">= 1.2.3"
gem "tailwindcss-rails"
gem "dartsass-rails"
2014-02-22 04:58:09 +08:00
# 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)
2014-02-22 04:58:09 +08:00
# being dependent on a binary library.
gem "bcrypt", "~> 3.1.11", require: false
2014-02-22 04:58:09 +08:00
# 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"
Use cgi 0.3.6 or higher to address CookieStoreTest#test_session_store_with_all_domains This commit addresses the following error by using cgi 0.3.6 that includes https://github.com/ruby/cgi/pull/29 ```ruby $ ruby -v ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux] $ gem info cgi *** LOCAL GEMS *** cgi (0.3.5) Author: Yukihiro Matsumoto Homepage: https://github.com/ruby/cgi Licenses: Ruby, BSD-2-Clause Installed at (default): /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0 Support for the Common Gateway Interface protocol. $ ``` ``` $ cd actionpack $ bin/test test/dispatch/session/cookie_store_test.rb -n test_session_store_with_all_domains Running 27 tests in a single process (parallelization threshold is 50) Run options: -n test_session_store_with_all_domains --seed 24288 E Error: CookieStoreTest#test_session_store_with_all_domains: ArgumentError: invalid domain: ".example.com" /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/3.1.0/cgi/cookie.rb:128:in `domain=' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/3.1.0/cgi/cookie.rb:95:in `initialize' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.4/lib/rack/mock.rb:239:in `new' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.4/lib/rack/mock.rb:239:in `block in parse_cookies_from_header' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.4/lib/rack/mock.rb:236:in `each' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.4/lib/rack/mock.rb:236:in `parse_cookies_from_header' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-2.2.4/lib/rack/mock.rb:187:in `initialize' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-test-2.0.2/lib/rack/test.rb:360:in `new' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-test-2.0.2/lib/rack/test.rb:360:in `process_request' /home/yahonda/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/rack-test-2.0.2/lib/rack/test.rb:155:in `request' /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/testing/integration.rb:285:in `process' /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/testing/integration.rb:16:in `get' /home/yahonda/src/github.com/rails/rails/actionpack/lib/action_dispatch/testing/integration.rb:376:in `get' /home/yahonda/src/github.com/rails/rails/actionpack/test/dispatch/session/cookie_store_test.rb:420:in `get' /home/yahonda/src/github.com/rails/rails/actionpack/test/dispatch/session/cookie_store_test.rb:379:in `block in test_session_store_with_all_domains' /home/yahonda/src/github.com/rails/rails/actionpack/test/dispatch/session/cookie_store_test.rb:438:in `block in with_test_route_set' /home/yahonda/src/github.com/rails/rails/actionpack/test/abstract_unit.rb:157:in `with_routing' /home/yahonda/src/github.com/rails/rails/actionpack/test/dispatch/session/cookie_store_test.rb:424:in `with_test_route_set' /home/yahonda/src/github.com/rails/rails/actionpack/test/dispatch/session/cookie_store_test.rb:378:in `test_session_store_with_all_domains' bin/test test/dispatch/session/cookie_store_test.rb:377 Finished in 0.079807s, 12.5303 runs/s, 0.0000 assertions/s. 1 runs, 0 assertions, 0 failures, 1 errors, 0 skips $ ``` Related to https://github.com/ruby/cgi/pull/29 https://github.com/rails/rails/issues/46578
2022-11-28 12:53:28 +08:00
# Workaround until Ruby ships with cgi version 0.3.6 or higher.
gem "cgi", ">= 0.3.6", require: false
group :lint do
gem "syntax_tree", "6.1.1", require: false
end
group :rubocop do
2022-02-23 23:48:33 +08:00
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
2016-11-28 11:12:33 +08:00
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
2018-12-25 04:16:22 +08:00
# 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
Add ActiveSupport::MessagePack `ActiveSupport::MessagePack` is a serializer that integrates with the `msgpack` gem to serialize a variety of Ruby objects. `AS::MessagePack` supports several types beyond the base types that `msgpack` supports, including `Time` and `Range`, as well as Active Support types such as `AS::TimeWithZone` and `AS::HashWithIndifferentAccess`. Compared to `JSON` and `Marshal`, `AS::MessagePack` can provide a performance improvement and message size reduction. For example, when used with `MessageVerifier`: ```ruby # frozen_string_literal: true require "benchmark/ips" require "active_support/all" require "active_support/message_pack" marshal_verifier = ActiveSupport::MessageVerifier.new("secret", serializer: Marshal) json_verifier = ActiveSupport::MessageVerifier.new("secret", serializer: JSON) asjson_verifier = ActiveSupport::MessageVerifier.new("secret", serializer: ActiveSupport::JSON) msgpack_verifier = ActiveSupport::MessageVerifier.new("secret", serializer: ActiveSupport::MessagePack) ActiveSupport::Messages::Metadata.use_message_serializer_for_metadata = true expiry = 1.year.from_now data = { bool: true, num: 123456789, string: "x" * 50 } Benchmark.ips do |x| x.report("Marshal") do marshal_verifier.verify(marshal_verifier.generate(data, expires_at: expiry)) end x.report("JSON") do json_verifier.verify(json_verifier.generate(data, expires_at: expiry)) end x.report("AS::JSON") do asjson_verifier.verify(asjson_verifier.generate(data, expires_at: expiry)) end x.report("MessagePack") do msgpack_verifier.verify(msgpack_verifier.generate(data, expires_at: expiry)) end x.compare! end puts "Marshal size: #{marshal_verifier.generate(data, expires_at: expiry).bytesize}" puts "JSON size: #{json_verifier.generate(data, expires_at: expiry).bytesize}" puts "MessagePack size: #{msgpack_verifier.generate(data, expires_at: expiry).bytesize}" ``` ``` Warming up -------------------------------------- Marshal 1.206k i/100ms JSON 1.165k i/100ms AS::JSON 790.000 i/100ms MessagePack 1.798k i/100ms Calculating ------------------------------------- Marshal 11.748k (± 1.3%) i/s - 59.094k in 5.031071s JSON 11.498k (± 1.4%) i/s - 58.250k in 5.066957s AS::JSON 7.867k (± 2.4%) i/s - 39.500k in 5.024055s MessagePack 17.865k (± 0.8%) i/s - 89.900k in 5.032592s Comparison: MessagePack: 17864.9 i/s Marshal: 11747.8 i/s - 1.52x (± 0.00) slower JSON: 11498.4 i/s - 1.55x (± 0.00) slower AS::JSON: 7866.9 i/s - 2.27x (± 0.00) slower Marshal size: 254 JSON size: 234 MessagePack size: 194 ``` Additionally, `ActiveSupport::MessagePack::CacheSerializer` is a serializer that is suitable for use as an `ActiveSupport::Cache` coder. `AS::MessagePack::CacheSerializer` can serialize `ActiveRecord::Base` instances, including loaded associations. Like `AS::MessagePack`, it provides a performance improvement and payload size reduction: ```ruby # frozen_string_literal: true require "benchmark/ips" require "active_support/message_pack" ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:") ActiveRecord::Schema.define do create_table :posts, force: true do |t| t.string :body t.timestamps end create_table :comments, force: true do |t| t.integer :post_id t.string :body t.timestamps end end class Post < ActiveRecord::Base has_many :comments end class Comment < ActiveRecord::Base belongs_to :post end post = Post.create!(body: "x" * 100) 2.times { post.comments.create!(body: "x" * 100) } post.comments.load cache_entry = ActiveSupport::Cache::Entry.new(post) Rails70Coder = ActiveSupport::Cache::Coders::Rails70Coder CacheSerializer = ActiveSupport::MessagePack::CacheSerializer Benchmark.ips do |x| x.report("Rails70Coder") do Rails70Coder.load(Rails70Coder.dump(cache_entry)) end x.report("CacheSerializer") do CacheSerializer.load(CacheSerializer.dump(cache_entry)) end x.compare! end puts "Rails70Coder size: #{Rails70Coder.dump(cache_entry).bytesize}" puts "CacheSerializer size: #{CacheSerializer.dump(cache_entry).bytesize}" ``` ``` Warming up -------------------------------------- Rails70Coder 329.000 i/100ms CacheSerializer 492.000 i/100ms Calculating ------------------------------------- Rails70Coder 3.285k (± 1.7%) i/s - 16.450k in 5.008447s CacheSerializer 4.895k (± 2.4%) i/s - 24.600k in 5.028803s Comparison: CacheSerializer: 4894.7 i/s Rails70Coder: 3285.4 i/s - 1.49x slower Rails70Coder size: 808 CacheSerializer size: 593 ``` Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
2023-03-23 05:37:46 +08:00
gem "msgpack", ">= 1.7.0", require: false
# for railties
gem "bootsnap", ">= 1.4.4", require: false
gem "webrick", require: false
Always run `rails app:update` in app update tests Prior to this commit, several tests in `AppGeneratorTest` were testing app update behavior without actually running `rails app:update`. This meant the logic in `Rails::AppUpdater#generator_options` that detects which frameworks and components are installed was not being tested. Additionally, because `ENV["BUNDLE_GEMFILE"]` is set when tests are run (by `require "bundler/setup"` in `tools/test.rb`), any tests which did run `rails app:update` used the Rails repo Gemfile, instead of the generated app Gemfile. The difference becomes obvious when running `rails app:update` after generating an app without Sprockets (as in `test_app_update_does_not_generate_manifest_config_when_propshaft_is_used`), because `rails app:update` will load the Sprockets railtie (due to `Bundler.require` using the Rails repo Gemfile), and then exit with a `Sprockets::Railtie::ManifestNeededError`. However, if `rails app:update` is run within a `quietly` block, such an error will be swallowed. This commit changes all such tests to run `rails app:update` via a `run_app_update` helper that: (1) overrides the `BUNDLE_GEMFILE` environment variable to point to the generated app Gemfile, (2) points the `rails` gem in the generated app Gemfile to the Rails repo (otherwise the `rails` gem version cannot be resolved), and (3) sets `exception: true` so that the `system` call will raise an error if `rails app:update` exits with an error code. This commit also adds `jbuilder` and `web-console` to the Rails repo Gemfile to ensure they are already installed when evaluating the generated app Gemfile. These changes do add a couple dozen seconds to the test suite run time, but the thorough test coverage seems worth it.
2022-10-04 06:26:04 +08:00
gem "jbuilder", require: false
gem "web-console", require: false
2019-02-12 04:44:25 +08:00
# Action Pack and railties
rack_version = ENV.fetch("RACK", "~> 3.0")
2023-07-18 07:15:20 +08:00
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
2018-12-25 04:16:22 +08:00
# Active Job
2014-08-20 10:21:39 +08:00
group :job do
2017-02-10 14:31:41 +08:00
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
2014-08-20 10:21:39 +08:00
end
2014-08-12 17:29:21 +08:00
# Action Cable
group :cable do
2022-09-22 03:46:43 +08:00
gem "puma", ">= 5.0.3", require: false
2016-01-24 18:43:40 +08:00
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
2017-10-12 03:31:54 +08:00
# Active Storage
group :storage do
2017-09-10 11:22:10 +08:00
gem "aws-sdk-s3", require: false
gem "google-cloud-storage", "~> 1.11", require: false
gem "azure-storage-blob", "~> 2.0", require: false
Use ImageProcessing gem for ActiveStorage variants ImageProcessing gem is a wrapper around MiniMagick and ruby-vips, and implements an interface for common image resizing and processing. This is the canonical image processing gem recommended in [Shrine], and that's where it developed from. The initial implementation was extracted from Refile, which also implements on-the-fly transformations. Some features that ImageProcessing gem adds on top of MiniMagick: * resizing macros - #resize_to_limit - #resize_to_fit - #resize_to_fill - #resize_and_pad * automatic orientation * automatic thumbnail sharpening * avoids the complex and inefficient MiniMagick::Image class * will use "magick" instead of "convert" on ImageMagick 7 However, the biggest feature of the ImageProcessing gem is that it has an alternative implementation that uses libvips. Libvips is an alternative to ImageMagick that can process images very rapidly (we've seen up 10x faster than ImageMagick). What's great is that the ImageProcessing gem provides the same interface for both implementations. The macros are named the same, and the libvips implementation does auto orientation and thumbnail sharpening as well; only the operations/options specific to ImageMagick/libvips differ. The integration provided by this PR should work for both implementations. The plan is to introduce the ImageProcessing backend in Rails 6.0 as the default backend and deprecate the MiniMagick backend, then in Rails 6.1 remove the MiniMagick backend.
2018-04-06 07:48:29 +08:00
gem "image_processing", "~> 1.2"
end
2018-12-25 04:16:22 +08:00
# 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
Replace webpack with importmapped Hotwire as default js (#42999) * Turbolinks is being replaced with Hotwire * Make --webpack opt-in * Don't use specific webpacker installers any more in preparation for next Webpacker * Update railties/lib/rails/app_updater.rb Co-authored-by: Alex Ghiculescu <alex@tanda.co> * Trailing whitespace * Convert to Turbo data attribute for tracking * Default is no webpack, no hotwire * Swap out turbolinks references for hotwire * Drop explicit return * Only generate package.json if using webpack * Only create package.json in webpack mode * Only create app/javascript in webpack mode * Generate correct style/js links based on js mode * Fix tests from changed output format Not sure why these are showing up in this PR, though. * Rubocopping * Stick with webpack for the test app for now * Adjust tests * Replace minitest-reporters with minitest-ci (#43016) minitest-reporters is used to create junit xml reports on CI. But when it loads before rails minitest plugin makes `Rails::TestUnitReporter` not being added as a reporter. minitest-ci is now only loaded at ci and does not interferes with rails minitest plugins. And keeps junit reports workings * Too heavy handed to actually run bundle Just like we don't auto-migrate * Pin js frameworks in importmap Instead of having importmap preconfigure it. * Match updated app/javascript path * No need for the explaining comment * Fixes test cases for replace webpack with importmapped Hotwire as default js (#42999) * Fix rubocop issues * Fix more railities test cases * Fix plugin generator railties shared test cases * Fix Action Text install generator asset pipeline spec * They're modules, not files * Let dev use the latest release as well So we don't have to replace unexisting dev releases with latest release * Make Webpack responsible for generating all the JS files it needs Webpacker 6 has already moved from app/javascript to app/packs. * Don't add rails/ujs by default any longer All the ajax/form functionality has been superseded by Turbo. The rest lives in a weird inbetween land we need to address through other means. * Use new importmap location * Switch to using turbo-rails and stimulus-rails directly The hotwire-rails gem does not offer enough value for its indirection * Use latest Webpacker * Prevent version resolution requests from getting swallowed * Use ESM syntax for imports * Move management of yarn, package.json, etc to Webpacker 6 * Update for Webpacker 6 * Move bin/setup addition to Webpacker as well * Remove dead tests * Bump to Webpacker 6.0.0.rc.2 * No longer relevant given the new default is no webpacker * Rely on Webpacker 6 * No longer relevant * No longer relevant * Make cable channel generator work for both webpacker and importmap setups * Fix tests * For tests testing importmap way * Use Webpacker 6 dummy * RuboCopping * One more bump to fix webpack-dev-server * Another bump. Hopefully the last one! * Also enough to not want turbo tracking on * Fix tests * Latest * Fix tests * Fix more tests * Fix tests Co-authored-by: Alex Ghiculescu <alex@tanda.co> Co-authored-by: André Luis Leal Cardoso Junior <andrehjr@gmail.com> Co-authored-by: Abhay Nikam <nikam.abhay1@gmail.com> Co-authored-by: Guillermo Iguaran <guilleiguaran@gmail.com>
2021-08-26 16:39:36 +08:00
gem "minitest-ci", require: false
2018-10-11 06:33:09 +08:00
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"
2011-05-06 01:47:07 +08:00
# 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"
2022-05-04 19:00:35 +08:00
gem "mysql2", "~> 0.5"
2023-09-02 04:39:50 +08:00
gem "trilogy", ">= 2.5.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
2013-08-21 02:31:43 +08:00
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