diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8cacb1c73..5dfa1ccc2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,8 +42,10 @@ jobs: rails_version: "8.0" - ruby_version: "4.0" rails_version: "8.1" - - ruby_version: "head" + - ruby_version: "4.0" rails_version: "main" + - ruby_version: "head" + rails_version: "main_head" env: BUNDLE_GEMFILE: gemfiles/rails_${{ matrix.rails_version }}.gemfile steps: diff --git a/.gitignore b/.gitignore index bfb8115e9..42fec50d4 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ /test/tmp/* /.yardoc .DS_Store +/log/* ## Specific to RubyMotion: .dat* diff --git a/.tool-versions b/.tool-versions index 6e03b218f..b10db9099 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1 @@ -ruby 4.0.1 +ruby 4.1-dev diff --git a/Appraisals b/Appraisals index e0d1a66bd..632a1b6a9 100644 --- a/Appraisals +++ b/Appraisals @@ -45,6 +45,18 @@ appraise "rails-8.1" do end appraise "rails-main" do + ruby "~> 4.0" + + gem "rack", git: "https://github.com/rack/rack", ref: "8a4475a9f416a72e5b02bd7817e4a8ed684f29b0" + gem "rails", github: "rails/rails", branch: "main" + + group :development, :test do + gem "turbo-rails", "~> 2" + gem "rspec-rails", "~> 8" + end +end + +appraise "rails-main_head" do ruby "4.1.0.dev" gem "rack", git: "https://github.com/rack/rack", ref: "8a4475a9f416a72e5b02bd7817e4a8ed684f29b0" diff --git a/Gemfile.lock b/Gemfile.lock index cc49e96f2..8cdf6c235 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -184,6 +184,7 @@ GEM matrix (0.4.3) method_source (1.1.0) mini_mime (1.1.5) + mini_portile2 (2.8.9) minitest (6.0.6) drb (~> 2.0) prism (~> 1.5) @@ -198,6 +199,9 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) + nokogiri (1.19.3) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) nokogiri (1.19.3-aarch64-linux-gnu) racc (~> 1.4) nokogiri (1.19.3-aarch64-linux-musl) @@ -529,6 +533,7 @@ CHECKSUMS matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5 mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef + mini_portile2 (2.8.9) sha256=0cd7c7f824e010c072e33f68bc02d85a00aeb6fce05bb4819c03dfd3c140c289 minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1 minitest-mock (5.27.0) sha256=7040ed7185417a966920987eaa6eaf1be4ea1fc5b25bb03ff4703f98564a55b0 net-imap (0.6.4) sha256=9a5598c67a3022c284d98430ef1d4948e7dbdb62596f61081ea8ca933270a02b @@ -536,6 +541,7 @@ CHECKSUMS net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8 net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736 nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1 + nokogiri (1.19.3) sha256=78312cbac32a40c812780d9678221b79d51288eec00054c1a8d15f7ce05960e8 nokogiri (1.19.3-aarch64-linux-gnu) sha256=46b89e5d7b9e844c2ee360794240c6ea2a4e6fa0c5892a4ed487db621224b639 nokogiri (1.19.3-aarch64-linux-musl) sha256=8392dfdcd21be7a94dbbe9ccc138dea01b97b24cb2dc02a114ca98bfb1d9a0b7 nokogiri (1.19.3-arm-linux-gnu) sha256=3919d5ffc334ad778a4a9eb88fda7dcb8b1fb58c8a52ac640c6dcd2f038e774f diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 6602b6896..5452a9313 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -10,6 +10,10 @@ nav_order: 6 ## main +* Update `render_in` signature to accept `**_` for compatibility with Rails [#50623](https://github.com/rails/rails/pull/50623). + + *Joel Hawksley* + * Fix translation scope resolution in nested lambda-backed slots. Relative `t(".key")` calls inside lambda-backed slots were resolving against an intermediate component's scope instead of the original partial's scope where the block was defined. *Artin Boghosian* diff --git a/gemfiles/rails_7.1.gemfile b/gemfiles/rails_7.1.gemfile index 0354e7662..8894e48ed 100644 --- a/gemfiles/rails_7.1.gemfile +++ b/gemfiles/rails_7.1.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -ruby "~> 3.2.0" +ruby "~> 3.2" gem "rails", "~> 7.1.0" @@ -17,11 +17,13 @@ group :development, :test do gem "cuprite" gem "dry-initializer", require: true gem "erb_lint" - gem "haml", "~> 6" + gem "haml", "~> 7" gem "jbuilder", "~> 2" gem "m", "~> 1" gem "method_source", "~> 1" - gem "minitest", "~> 5" + gem "minitest", "~> 6" + gem "minitest-mock" + gem "nokogiri", "1.19.3" gem "propshaft", "~> 1" gem "puma", ">= 6" gem "rake", "~> 13" @@ -40,6 +42,7 @@ group :development, :test do gem "turbo-rails", "~> 1" gem "warning" gem "yard-activesupport-concern", "< 1" + gem "yard-lint", "~> 1.5" gem "yard", "< 1" end diff --git a/gemfiles/rails_7.1.gemfile.lock b/gemfiles/rails_7.1.gemfile.lock index d06059cbd..abb6da87a 100644 --- a/gemfiles/rails_7.1.gemfile.lock +++ b/gemfiles/rails_7.1.gemfile.lock @@ -148,7 +148,7 @@ GEM websocket-driver (~> 0.7) globalid (1.3.0) activesupport (>= 6.1) - haml (6.4.0) + haml (7.2.0) temple (>= 0.8.2) thor tilt @@ -190,7 +190,10 @@ GEM matrix (0.4.3) method_source (1.1.0) mini_mime (1.1.5) - minitest (5.26.2) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + minitest-mock (5.27.0) mutex_m (0.3.0) net-imap (0.5.12) date @@ -202,21 +205,21 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.18.10-aarch64-linux-gnu) + nokogiri (1.19.3-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-aarch64-linux-musl) + nokogiri (1.19.3-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-gnu) + nokogiri (1.19.3-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-musl) + nokogiri (1.19.3-arm-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-arm64-darwin) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.10-x86_64-darwin) + nokogiri (1.19.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.10-x86_64-linux-gnu) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-x86_64-linux-musl) + nokogiri (1.19.3-x86_64-linux-musl) racc (~> 1.4) parallel (1.27.0) parser (3.3.10.0) @@ -413,6 +416,9 @@ GEM yard (0.9.37) yard-activesupport-concern (0.0.1) yard (>= 0.8) + yard-lint (1.5.1) + yard (~> 0.9) + zeitwerk (~> 2.6) zeitwerk (2.7.3) PLATFORMS @@ -439,11 +445,13 @@ DEPENDENCIES cuprite dry-initializer erb_lint - haml (~> 6) + haml (~> 7) jbuilder (~> 2) m (~> 1) method_source (~> 1) - minitest (~> 5) + minitest (~> 6) + minitest-mock + nokogiri (= 1.19.3) propshaft (~> 1) puma (>= 6) rails (~> 7.1.0) @@ -465,6 +473,7 @@ DEPENDENCIES warning yard (< 1) yard-activesupport-concern (< 1) + yard-lint (~> 1.5) RUBY VERSION ruby 3.2.8p263 diff --git a/gemfiles/rails_7.2.gemfile b/gemfiles/rails_7.2.gemfile index b77e73e7e..8c3e5f0d5 100644 --- a/gemfiles/rails_7.2.gemfile +++ b/gemfiles/rails_7.2.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -ruby "~> 3.3.0" +ruby "~> 3.3" gem "rails", "~> 7.2.0" @@ -17,11 +17,13 @@ group :development, :test do gem "cuprite" gem "dry-initializer", require: true gem "erb_lint" - gem "haml", "~> 6" + gem "haml", "~> 7" gem "jbuilder", "~> 2" gem "m", "~> 1" gem "method_source", "~> 1" - gem "minitest", "~> 5" + gem "minitest", "~> 6" + gem "minitest-mock" + gem "nokogiri", "1.19.3" gem "propshaft", "~> 1" gem "puma", ">= 6" gem "rake", "~> 13" @@ -40,6 +42,7 @@ group :development, :test do gem "turbo-rails", "~> 2" gem "warning" gem "yard-activesupport-concern", "< 1" + gem "yard-lint", "~> 1.5" gem "yard", "< 1" end diff --git a/gemfiles/rails_7.2.gemfile.lock b/gemfiles/rails_7.2.gemfile.lock index a20ffde0e..8b4a4f165 100644 --- a/gemfiles/rails_7.2.gemfile.lock +++ b/gemfiles/rails_7.2.gemfile.lock @@ -142,7 +142,7 @@ GEM websocket-driver (~> 0.7) globalid (1.3.0) activesupport (>= 6.1) - haml (6.4.0) + haml (7.2.0) temple (>= 0.8.2) thor tilt @@ -184,7 +184,10 @@ GEM matrix (0.4.3) method_source (1.1.0) mini_mime (1.1.5) - minitest (5.26.2) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + minitest-mock (5.27.0) net-imap (0.5.12) date net-protocol @@ -195,21 +198,21 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.18.10-aarch64-linux-gnu) + nokogiri (1.19.3-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-aarch64-linux-musl) + nokogiri (1.19.3-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-gnu) + nokogiri (1.19.3-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-musl) + nokogiri (1.19.3-arm-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-arm64-darwin) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.10-x86_64-darwin) + nokogiri (1.19.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.10-x86_64-linux-gnu) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-x86_64-linux-musl) + nokogiri (1.19.3-x86_64-linux-musl) racc (~> 1.4) parallel (1.27.0) parser (3.3.10.0) @@ -406,6 +409,9 @@ GEM yard (0.9.37) yard-activesupport-concern (0.0.1) yard (>= 0.8) + yard-lint (1.5.1) + yard (~> 0.9) + zeitwerk (~> 2.6) zeitwerk (2.7.3) PLATFORMS @@ -432,11 +438,13 @@ DEPENDENCIES cuprite dry-initializer erb_lint - haml (~> 6) + haml (~> 7) jbuilder (~> 2) m (~> 1) method_source (~> 1) - minitest (~> 5) + minitest (~> 6) + minitest-mock + nokogiri (= 1.19.3) propshaft (~> 1) puma (>= 6) rails (~> 7.2.0) @@ -458,6 +466,7 @@ DEPENDENCIES warning yard (< 1) yard-activesupport-concern (< 1) + yard-lint (~> 1.5) RUBY VERSION ruby 3.3.8p144 diff --git a/gemfiles/rails_8.0.gemfile b/gemfiles/rails_8.0.gemfile index 078907d81..0cb9f416f 100644 --- a/gemfiles/rails_8.0.gemfile +++ b/gemfiles/rails_8.0.gemfile @@ -17,11 +17,13 @@ group :development, :test do gem "cuprite" gem "dry-initializer", require: true gem "erb_lint" - gem "haml", "~> 6" + gem "haml", "~> 7" gem "jbuilder", "~> 2" gem "m", "~> 1" gem "method_source", "~> 1" - gem "minitest", "~> 5" + gem "minitest", "~> 6" + gem "minitest-mock" + gem "nokogiri", "1.19.3" gem "propshaft", "~> 1" gem "puma", ">= 6" gem "rake", "~> 13" @@ -40,6 +42,7 @@ group :development, :test do gem "turbo-rails", "~> 2" gem "warning" gem "yard-activesupport-concern", "< 1" + gem "yard-lint", "~> 1.5" gem "yard", "< 1" end diff --git a/gemfiles/rails_8.0.gemfile.lock b/gemfiles/rails_8.0.gemfile.lock index 7d4963c89..a0c6aacce 100644 --- a/gemfiles/rails_8.0.gemfile.lock +++ b/gemfiles/rails_8.0.gemfile.lock @@ -139,7 +139,7 @@ GEM websocket-driver (~> 0.7) globalid (1.3.0) activesupport (>= 6.1) - haml (6.4.0) + haml (7.2.0) temple (>= 0.8.2) thor tilt @@ -181,7 +181,10 @@ GEM matrix (0.4.3) method_source (1.1.0) mini_mime (1.1.5) - minitest (5.26.2) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + minitest-mock (5.27.0) net-imap (0.5.12) date net-protocol @@ -192,21 +195,21 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.18.10-aarch64-linux-gnu) + nokogiri (1.19.3-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-aarch64-linux-musl) + nokogiri (1.19.3-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-gnu) + nokogiri (1.19.3-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-arm-linux-musl) + nokogiri (1.19.3-arm-linux-musl) racc (~> 1.4) - nokogiri (1.18.10-arm64-darwin) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.10-x86_64-darwin) + nokogiri (1.19.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.18.10-x86_64-linux-gnu) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.18.10-x86_64-linux-musl) + nokogiri (1.19.3-x86_64-linux-musl) racc (~> 1.4) parallel (1.27.0) parser (3.3.10.0) @@ -403,6 +406,9 @@ GEM yard (0.9.37) yard-activesupport-concern (0.0.1) yard (>= 0.8) + yard-lint (1.5.1) + yard (~> 0.9) + zeitwerk (~> 2.6) zeitwerk (2.7.3) PLATFORMS @@ -429,11 +435,13 @@ DEPENDENCIES cuprite dry-initializer erb_lint - haml (~> 6) + haml (~> 7) jbuilder (~> 2) m (~> 1) method_source (~> 1) - minitest (~> 5) + minitest (~> 6) + minitest-mock + nokogiri (= 1.19.3) propshaft (~> 1) puma (>= 6) rails (~> 8.0.0) @@ -455,9 +463,10 @@ DEPENDENCIES warning yard (< 1) yard-activesupport-concern (< 1) + yard-lint (~> 1.5) RUBY VERSION - ruby 3.4.4p34 + ruby 3.4.4p34 BUNDLED WITH - 4.1.0.dev + 2.6.9 diff --git a/gemfiles/rails_8.1.gemfile b/gemfiles/rails_8.1.gemfile index 0f07ffe95..b51e6a7a5 100644 --- a/gemfiles/rails_8.1.gemfile +++ b/gemfiles/rails_8.1.gemfile @@ -17,11 +17,13 @@ group :development, :test do gem "cuprite" gem "dry-initializer", require: true gem "erb_lint" - gem "haml", "~> 6" + gem "haml", "~> 7" gem "jbuilder", "~> 2" gem "m", "~> 1" gem "method_source", "~> 1" - gem "minitest", "~> 5" + gem "minitest", "~> 6" + gem "minitest-mock" + gem "nokogiri", "1.19.3" gem "propshaft", "~> 1" gem "puma", ">= 6" gem "rake", "~> 13" @@ -40,6 +42,7 @@ group :development, :test do gem "turbo-rails", "~> 2" gem "warning" gem "yard-activesupport-concern", "< 1" + gem "yard-lint", "~> 1.5" gem "yard", "< 1" end diff --git a/gemfiles/rails_8.1.gemfile.lock b/gemfiles/rails_8.1.gemfile.lock index d0fe10c4e..857d1901e 100644 --- a/gemfiles/rails_8.1.gemfile.lock +++ b/gemfiles/rails_8.1.gemfile.lock @@ -141,7 +141,7 @@ GEM websocket-driver (~> 0.7) globalid (1.3.0) activesupport (>= 6.1) - haml (6.4.0) + haml (7.2.0) temple (>= 0.8.2) thor tilt @@ -182,7 +182,10 @@ GEM matrix (0.4.3) method_source (1.1.0) mini_mime (1.1.5) - minitest (5.27.0) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + minitest-mock (5.27.0) net-imap (0.6.2) date net-protocol @@ -193,21 +196,21 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.19.0-aarch64-linux-gnu) + nokogiri (1.19.3-aarch64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-aarch64-linux-musl) + nokogiri (1.19.3-aarch64-linux-musl) racc (~> 1.4) - nokogiri (1.19.0-arm-linux-gnu) + nokogiri (1.19.3-arm-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-arm-linux-musl) + nokogiri (1.19.3-arm-linux-musl) racc (~> 1.4) - nokogiri (1.19.0-arm64-darwin) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.0-x86_64-darwin) + nokogiri (1.19.3-x86_64-darwin) racc (~> 1.4) - nokogiri (1.19.0-x86_64-linux-gnu) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) - nokogiri (1.19.0-x86_64-linux-musl) + nokogiri (1.19.3-x86_64-linux-musl) racc (~> 1.4) parallel (1.27.0) parser (3.3.10.0) @@ -404,6 +407,9 @@ GEM yard (0.9.38) yard-activesupport-concern (0.0.1) yard (>= 0.8) + yard-lint (1.5.1) + yard (~> 0.9) + zeitwerk (~> 2.6) zeitwerk (2.7.4) PLATFORMS @@ -427,11 +433,13 @@ DEPENDENCIES cuprite dry-initializer erb_lint - haml (~> 6) + haml (~> 7) jbuilder (~> 2) m (~> 1) method_source (~> 1) - minitest (~> 5) + minitest (~> 6) + minitest-mock + nokogiri (= 1.19.3) propshaft (~> 1) puma (>= 6) rails (~> 8.1.0) @@ -453,9 +461,10 @@ DEPENDENCIES warning yard (< 1) yard-activesupport-concern (< 1) + yard-lint (~> 1.5) RUBY VERSION ruby 4.0.0p0 BUNDLED WITH - 4.1.0.dev + 4.0.10 diff --git a/gemfiles/rails_main.gemfile b/gemfiles/rails_main.gemfile index 6e74cecbc..8f18b008d 100644 --- a/gemfiles/rails_main.gemfile +++ b/gemfiles/rails_main.gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" -ruby "4.1.0.dev" +ruby "~> 4.0" gem "rails", github: "rails/rails", branch: "main" gem "rack", git: "https://github.com/rack/rack", ref: "8a4475a9f416a72e5b02bd7817e4a8ed684f29b0" @@ -18,11 +18,13 @@ group :development, :test do gem "cuprite" gem "dry-initializer", require: true gem "erb_lint" - gem "haml", "~> 6" + gem "haml", "~> 7" gem "jbuilder", "~> 2" gem "m", "~> 1" gem "method_source", "~> 1" - gem "minitest", "~> 5" + gem "minitest", "~> 6" + gem "minitest-mock" + gem "nokogiri", "1.19.3" gem "propshaft", "~> 1" gem "puma", ">= 6" gem "rake", "~> 13" @@ -41,6 +43,7 @@ group :development, :test do gem "turbo-rails", "~> 2" gem "warning" gem "yard-activesupport-concern", "< 1" + gem "yard-lint", "~> 1.5" gem "yard", "< 1" end diff --git a/gemfiles/rails_main.gemfile.lock b/gemfiles/rails_main.gemfile.lock index 8b62a56de..5041cbf4d 100644 --- a/gemfiles/rails_main.gemfile.lock +++ b/gemfiles/rails_main.gemfile.lock @@ -7,7 +7,7 @@ GIT GIT remote: https://github.com/rails/rails.git - revision: 6a8caf56963bbdc7eec2f72e3aa227436f682bb6 + revision: 9cc62ec2a5c4ac56f7571f05489da9d27c6df69d branch: main specs: actioncable (8.2.0.alpha) @@ -118,12 +118,12 @@ PATH GEM remote: https://rubygems.org/ specs: - action_text-trix (2.1.18) + action_text-trix (2.1.19) railties - addressable (2.8.9) + addressable (2.9.0) public_suffix (>= 2.0.2, < 8.0) allocation_stats (0.1.5) - ansi (1.5.0) + ansi (1.6.0) appraisal (2.5.0) bundler rake @@ -139,7 +139,7 @@ GEM erubi (~> 1.4) parser (>= 2.4) smart_properties - bigdecimal (4.1.0) + bigdecimal (4.1.2) builder (3.3.0) capybara (3.40.0) addressable @@ -161,7 +161,7 @@ GEM docile (1.4.1) drb (2.2.3) dry-initializer (3.2.0) - erb (6.0.2) + erb (6.0.4) erb_lint (0.9.0) activesupport better_html (>= 2.0.1) @@ -178,15 +178,22 @@ GEM websocket-driver (~> 0.7) globalid (1.3.0) activesupport (>= 6.1) - haml (6.4.0) + haml (7.2.0) temple (>= 0.8.2) thor tilt - herb (0.9.3) + herb (0.10.1-aarch64-linux-gnu) + herb (0.10.1-aarch64-linux-musl) + herb (0.10.1-arm-linux-gnu) + herb (0.10.1-arm-linux-musl) + herb (0.10.1-arm64-darwin) + herb (0.10.1-x86_64-darwin) + herb (0.10.1-x86_64-linux-gnu) + herb (0.10.1-x86_64-linux-musl) i18n (1.14.8) concurrent-ruby (~> 1.0) io-console (0.8.2) - irb (1.17.0) + irb (1.18.0) pp (>= 0.6.0) prism (>= 1.3.0) rdoc (>= 4.0.0) @@ -194,7 +201,7 @@ GEM jbuilder (2.14.1) actionview (>= 7.0.0) activesupport (>= 7.0.0) - json (2.19.3) + json (2.19.5) language_server-protocol (3.17.0.5) lint_roller (1.1.0) logger (1.7.0) @@ -213,9 +220,11 @@ GEM matrix (0.4.3) method_source (1.1.0) mini_mime (1.1.5) - mini_portile2 (2.8.9) - minitest (5.27.0) - net-imap (0.6.3) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + minitest-mock (5.27.0) + net-imap (0.6.4) date net-protocol net-pop (0.1.2) @@ -225,10 +234,23 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.19.2) - mini_portile2 (~> 2.8.2) + nokogiri (1.19.3-aarch64-linux-gnu) racc (~> 1.4) - parallel (1.27.0) + nokogiri (1.19.3-aarch64-linux-musl) + racc (~> 1.4) + nokogiri (1.19.3-arm-linux-gnu) + racc (~> 1.4) + nokogiri (1.19.3-arm-linux-musl) + racc (~> 1.4) + nokogiri (1.19.3-arm64-darwin) + racc (~> 1.4) + nokogiri (1.19.3-x86_64-darwin) + racc (~> 1.4) + nokogiri (1.19.3-x86_64-linux-gnu) + racc (~> 1.4) + nokogiri (1.19.3-x86_64-linux-musl) + racc (~> 1.4) + parallel (1.28.0) parser (3.3.11.1) ast (~> 2.4.1) racc @@ -236,7 +258,7 @@ GEM prettyprint prettyprint (0.2.0) prism (1.9.0) - propshaft (1.3.1) + propshaft (1.3.2) actionpack (>= 7.0.0) activesupport (>= 7.0.0) rack @@ -244,10 +266,10 @@ GEM date stringio public_suffix (7.0.5) - puma (7.2.0) + puma (8.0.1) nio4r (~> 2.0) racc (1.8.1) - rack-session (2.1.1) + rack-session (2.1.2) base64 (>= 0.1.0) rack (>= 3.0.0) rack-test (2.2.0) @@ -262,7 +284,7 @@ GEM loofah (~> 2.25) nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) rainbow (3.1.1) - rake (13.3.1) + rake (13.4.2) rdoc (7.2.0) erb psych (>= 4.0.0) @@ -272,9 +294,9 @@ GEM herb (>= 0.9.0, < 1.0.0) redis (5.4.1) redis-client (>= 0.22.0) - redis-client (0.28.0) + redis-client (0.29.0) connection_pool - regexp_parser (2.11.3) + regexp_parser (2.12.0) reline (0.6.3) io-console (~> 0.5) rexml (3.4.4) @@ -317,9 +339,9 @@ GEM rubocop (>= 1.75.0, < 2.0) rubocop-ast (>= 1.47.1, < 2.0) ruby-progressbar (1.13.0) - rubyzip (3.2.2) + rubyzip (3.3.0) securerandom (0.4.1) - selenium-webdriver (4.41.0) + selenium-webdriver (4.44.0) base64 (~> 0.2) logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) @@ -363,13 +385,13 @@ GEM tailwindcss-rails (4.4.0) railties (>= 7.0.0) tailwindcss-ruby (~> 4.0) - tailwindcss-ruby (4.2.1) - tailwindcss-ruby (4.2.1-aarch64-linux-gnu) - tailwindcss-ruby (4.2.1-aarch64-linux-musl) - tailwindcss-ruby (4.2.1-arm64-darwin) - tailwindcss-ruby (4.2.1-x86_64-darwin) - tailwindcss-ruby (4.2.1-x86_64-linux-gnu) - tailwindcss-ruby (4.2.1-x86_64-linux-musl) + tailwindcss-ruby (4.3.0) + tailwindcss-ruby (4.3.0-aarch64-linux-gnu) + tailwindcss-ruby (4.3.0-aarch64-linux-musl) + tailwindcss-ruby (4.3.0-arm64-darwin) + tailwindcss-ruby (4.3.0-x86_64-darwin) + tailwindcss-ruby (4.3.0-x86_64-linux-gnu) + tailwindcss-ruby (4.3.0-x86_64-linux-musl) temple (0.10.4) terminal-table (4.0.0) unicode-display_width (>= 1.1.1, < 4) @@ -387,7 +409,7 @@ GEM unicode-emoji (4.2.0) uri (1.1.1) useragent (0.16.11) - warning (1.5.0) + warning (1.6.0) webrick (1.9.2) websocket (1.2.11) websocket-driver (0.8.0) @@ -396,9 +418,12 @@ GEM websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - yard (0.9.38) + yard (0.9.43) yard-activesupport-concern (0.0.1) yard (>= 0.8) + yard-lint (1.5.1) + yard (~> 0.9) + zeitwerk (~> 2.6) zeitwerk (2.7.5) PLATFORMS @@ -422,11 +447,13 @@ DEPENDENCIES cuprite dry-initializer erb_lint - haml (~> 6) + haml (~> 7) jbuilder (~> 2) m (~> 1) method_source (~> 1) - minitest (~> 5) + minitest (~> 6) + minitest-mock + nokogiri (= 1.19.3) propshaft (~> 1) puma (>= 6) rack! @@ -449,9 +476,172 @@ DEPENDENCIES warning yard (< 1) yard-activesupport-concern (< 1) + yard-lint (~> 1.5) + +CHECKSUMS + action_text-trix (2.1.19) sha256=7012f59421009cf284aa651294896414d653a61a2417c9b8714c8476d2f74009 + actioncable (8.2.0.alpha) + actionmailbox (8.2.0.alpha) + actionmailer (8.2.0.alpha) + actionpack (8.2.0.alpha) + actiontext (8.2.0.alpha) + actionview (8.2.0.alpha) + activejob (8.2.0.alpha) + activemodel (8.2.0.alpha) + activerecord (8.2.0.alpha) + activestorage (8.2.0.alpha) + activesupport (8.2.0.alpha) + addressable (2.9.0) sha256=7fdf6ac3660f7f4e867a0838be3f6cf722ace541dd97767fa42bc6cfa980c7af + allocation_stats (0.1.5) sha256=cb9bb238c871d0d308e7f8316044be0a9bf68b194959a0c7a16adb97efa2b903 + ansi (1.6.0) sha256=ac9ea0c0ea8d32fb4e271348e609963ac78882f34b73836c2a02b3622e666658 + appraisal (2.5.0) sha256=36989221be127913b0dba8d114da2001e6b2dceea7bd4951200eaba764eed3ce + appraisal-run (1.1.0) sha256=93179b8fe4d7a3469a703dab69deccc88432bfe43f979acdebbe514e21af9789 + ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b + benchmark-ips (2.14.0) sha256=b72bc8a65d525d5906f8cd94270dccf73452ee3257a32b89fbd6684d3e8a9b1d + better_html (2.2.0) sha256=e68ab66ab09696b708333bbf35e8aa3c107500ba7892f528e2111624bdd8cf76 + bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd + builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f + capybara (3.40.0) sha256=42dba720578ea1ca65fd7a41d163dd368502c191804558f6e0f71b391054aeef + concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab + connection_pool (3.0.2) sha256=33fff5ba71a12d2aa26cb72b1db8bba2a1a01823559fb01d29eb74c286e62e0a + crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d + cuprite (0.17) sha256=b140d5dc70d08b97ad54bcf45cd95d0bd430e291e9dffe76fff851fddd57c12b + date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0 + diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 + docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e + drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373 + dry-initializer (3.2.0) sha256=37d59798f912dc0a1efe14a4db4a9306989007b302dcd5f25d0a2a20c166c4e3 + erb (6.0.4) sha256=38e3803694be357fe2bfe312487c74beaf9fb4e5beb3e22498952fe1645b95d9 + erb_lint (0.9.0) sha256=dfb5e40ad839e8d1f0d56ca85ec9a7ac4c9cd966ec281138282f35b323ca7c31 + erubi (1.13.1) sha256=a082103b0885dbc5ecf1172fede897f9ebdb745a4b97a5e8dc63953db1ee4ad9 + ferrum (0.17.2) sha256=2c2540a850b211a46f4d81de21bfd62048f507e4c327d1807225c3823c17e6ee + globalid (1.3.0) sha256=05c639ad6eb4594522a0b07983022f04aa7254626ab69445a0e493aa3786ff11 + haml (7.2.0) sha256=87fd2b71f7feab1724337b090a7d767f5ab2d42f08c974f3ead673f18cfcd55a + herb (0.10.1-aarch64-linux-gnu) sha256=fd9f4f8e0bcd9a421de55ff8810066550e9bcba8c8bf53737b32a04eb2fcbc49 + herb (0.10.1-aarch64-linux-musl) sha256=bc6dac577c25bb7b35fe812987a9da7056aabd3a9394941c2aadf68bcca7c58e + herb (0.10.1-arm-linux-gnu) sha256=965fcb7bb59c7307c2dfdb8fa03ae06724184886bcb015088585e5163036a425 + herb (0.10.1-arm-linux-musl) sha256=d1c18bf017bccaf32e27439e74e53b3f24bc8056d0ef70e79568ac7f7b2e2728 + herb (0.10.1-arm64-darwin) sha256=08d0434ae94d23a7353d767085dc974cc5e63943a07cd48bc99afd7fea919c1b + herb (0.10.1-x86_64-darwin) sha256=dc266814a63215eefb82cf4f55ce723bc20218395b13c1631c11ca7cfc782d07 + herb (0.10.1-x86_64-linux-gnu) sha256=c7762d411a6d2e1a032cf403b0429155c01ab48b3b5be2a0aab1e921da6b8948 + herb (0.10.1-x86_64-linux-musl) sha256=a5bb7c82bbc30a9eb80cb833fea749f543a0709d9f858f7db366a3c2616d969b + i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5 + io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc + irb (1.18.0) sha256=de9454a0703a54704b9811a5ef31a60c86949fbf4013fcf244fabc7c775248e3 + jbuilder (2.14.1) sha256=4eb26376ff60ef100cb4fd6fd7533cd271f9998327e86adf20fd8c0e69fabb42 + json (2.19.5) sha256=218a18553e4801d579ca7e0f5bc72bafd776d7397238a1fb4e74db5b0a812c59 + language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc + lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 + logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + loofah (2.25.1) sha256=d436c73dbd0c1147b16c4a41db097942d217303e1f7728704b37e4df9f6d2e04 + m (1.7.0) sha256=058f793da8150c51353cc59366ffae7774683e868bede3c78f81d920fb9d633a + mail (2.9.0) sha256=6fa6673ecd71c60c2d996260f9ee3dd387d4673b8169b502134659ece6d34941 + marcel (1.1.0) sha256=fdcfcfa33cc52e93c4308d40e4090a5d4ea279e160a7f6af988260fa970e0bee + matrix (0.4.3) sha256=a0d5ab7ddcc1973ff690ab361b67f359acbb16958d1dc072b8b956a286564c5b + method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5 + mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef + minitest (6.0.6) sha256=153ea36d1d987a62942382b61075745042a2b3123b1cd48f4c3675af9cc7d6f1 + minitest-mock (5.27.0) sha256=7040ed7185417a966920987eaa6eaf1be4ea1fc5b25bb03ff4703f98564a55b0 + net-imap (0.6.4) sha256=9a5598c67a3022c284d98430ef1d4948e7dbdb62596f61081ea8ca933270a02b + net-pop (0.1.2) sha256=848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3 + net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8 + net-smtp (0.5.1) sha256=ed96a0af63c524fceb4b29b0d352195c30d82dd916a42f03c62a3a70e5b70736 + nio4r (2.7.5) sha256=6c90168e48fb5f8e768419c93abb94ba2b892a1d0602cb06eef16d8b7df1dca1 + nokogiri (1.19.3-aarch64-linux-gnu) sha256=46b89e5d7b9e844c2ee360794240c6ea2a4e6fa0c5892a4ed487db621224b639 + nokogiri (1.19.3-aarch64-linux-musl) sha256=8392dfdcd21be7a94dbbe9ccc138dea01b97b24cb2dc02a114ca98bfb1d9a0b7 + nokogiri (1.19.3-arm-linux-gnu) sha256=3919d5ffc334ad778a4a9eb88fda7dcb8b1fb58c8a52ac640c6dcd2f038e774f + nokogiri (1.19.3-arm-linux-musl) sha256=9ce1cb6346bb9c67b1550eb537aa183ead91e4b6eadb2f36ade02d8dd2a79fb6 + nokogiri (1.19.3-arm64-darwin) sha256=71b9bd424b1b7abc18b05052a1a3cfd3627abdca62be280854cc411791357e42 + nokogiri (1.19.3-x86_64-darwin) sha256=77f3fba57d46c53ab31e62fc6c28f705109d1bf6264356c76f132b2be5728d4d + nokogiri (1.19.3-x86_64-linux-gnu) sha256=2f5078620fe12e83669b5b17311b32532a8153d02eee7ad06948b926d6080976 + nokogiri (1.19.3-x86_64-linux-musl) sha256=248c906d2166eca5efb56d52fdee5f9a1f51d69a72e2b64fdac647b4ce39ea3f + parallel (1.28.0) sha256=33e6de1484baf2524792d178b0913fc8eb94c628d6cfe45599ad4458c638c970 + parser (3.3.11.1) sha256=d17ace7aabe3e72c3cc94043714be27cc6f852f104d81aa284c2281aecc65d54 + pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6 + prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193 + prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85 + propshaft (1.3.2) sha256=1d56a3e56a92c21bfc29caf07406b5386b00d4c47ddf357cf989a5a234b1389e + psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974 + public_suffix (7.0.5) sha256=1a8bb08f1bbea19228d3bed6e5ed908d1cb4f7c2726d18bd9cadf60bc676f623 + puma (8.0.1) sha256=7b94e50c07655718c1fb8ae41a11fc06c7d61293208b3aa608ff71a46d3ad37c + racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f + rack (3.1.1) + rack-session (2.1.2) sha256=595434f8c0c3473ae7d7ac56ecda6cc6dfd9d37c0b2b5255330aa1576967ffe8 + rack-test (2.2.0) sha256=005a36692c306ac0b4a9350355ee080fd09ddef1148a5f8b2ac636c720f5c463 + rackup (2.3.1) sha256=6c79c26753778e90983761d677a48937ee3192b3ffef6bc963c0950f94688868 + rails (8.2.0.alpha) + rails-dom-testing (2.3.0) sha256=8acc7953a7b911ca44588bf08737bc16719f431a1cc3091a292bca7317925c1d + rails-html-sanitizer (1.7.0) sha256=28b145cceaf9cc214a9874feaa183c3acba036c9592b19886e0e45efc62b1e89 + railties (8.2.0.alpha) + rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a + rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701 + rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192 + reactionview (0.3.0) sha256=3bd363863776827eaf85a9baf75370c1ca52a4b0dad87ba5d672e4abe76eb640 + redis (5.4.1) sha256=b5e675b57ad22b15c9bcc765d5ac26f60b675408af916d31527af9bd5a81faae + redis-client (0.29.0) sha256=0c65bf1f8f6dca22063ddb085c0bb2054feef6f03a84869f4161b18a9a15bea3 + regexp_parser (2.12.0) sha256=35a916a1d63190ab5c9009457136ae5f3c0c7512d60291d0d1378ba18ce08ebb + reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835 + rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142 + rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d + rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 + rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47 + rspec-rails (8.0.4) sha256=06235692fc0892683d3d34977e081db867434b3a24ae0dd0c6f3516bad4e22df + rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c + rubocop (1.84.2) sha256=5692cea54168f3dc8cb79a6fe95c5424b7ea893c707ad7a4307b0585e88dbf5f + rubocop-ast (1.49.1) sha256=4412f3ee70f6fe4546cc489548e0f6fcf76cafcfa80fa03af67098ffed755035 + rubocop-md (2.0.4) sha256=0d076b6b5e99dea2ddc928c4bd702497decb9a8400da7808091e02ebcafcfb93 + rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 + ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 + rubyzip (3.3.0) sha256=a372fc67892a4f8c0bc8ec906b720353d8e48807a64b2e63adf99b1e3583a034 + securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 + selenium-webdriver (4.44.0) sha256=6f1df072529af369589c46f0e01132952aabb250cfd683c274d74dc1eb5d8477 + simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5 + simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6 + simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246 + simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428 + slim (5.2.1) sha256=72351dff7e2ff20e2d5c393cfc385bb9142cef5db059141628fd7163ac3c13e7 + smart_properties (1.17.0) sha256=f9323f8122e932341756ddec8e0ac9ec6e238408a7661508be99439ca6d6384b + sprockets (4.2.2) sha256=761e5a49f1c288704763f73139763564c845a8f856d52fba013458f8af1b59b1 + sprockets-rails (3.5.2) sha256=a9e88e6ce9f8c912d349aa5401509165ec42326baf9e942a85de4b76dbc4119e + standard (1.54.0) sha256=7a4b08f83d9893083c8f03bc486f0feeb6a84d48233b40829c03ef4767ea0100 + standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b + standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2 + stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1 + tailwindcss-rails (4.4.0) sha256=efa2961351a52acebe616e645a81a30bb4f27fde46cc06ce7688d1cd1131e916 + tailwindcss-ruby (4.3.0) sha256=4fd3219d97419d2b4f8c0f52c8a73972e55e29a0e0da38fb5fe8a16bf1a68b51 + tailwindcss-ruby (4.3.0-aarch64-linux-gnu) sha256=e43b94aba29785bba71b5868bab29b63ae48911fee038b2b5e9e5148baca3886 + tailwindcss-ruby (4.3.0-aarch64-linux-musl) sha256=ae2aff1e8482a9ba8723b57fbfa50cbf009788587ca9763f00489f3c5639e6ef + tailwindcss-ruby (4.3.0-arm64-darwin) sha256=828f49ddb3f19f67b36a1c5cb5c25175f7c93619a2ecf66e95d74408db9b73fd + tailwindcss-ruby (4.3.0-x86_64-darwin) sha256=f1e4c58ff7b1c256d8a8e5ee4fd01252c963e04110104ea1772668e04660a5bd + tailwindcss-ruby (4.3.0-x86_64-linux-gnu) sha256=0d1b0f491990c735d2f7bf5dbaedf33ddc635fd800b7244b39b30b25a8616cb2 + tailwindcss-ruby (4.3.0-x86_64-linux-musl) sha256=71e83a3f5f40e1cd7c28e7e6328a9c899cb2c0c98f6b42f29de968fff221ef75 + temple (0.10.4) sha256=b7a1e94b6f09038ab0b6e4fe0126996055da2c38bec53a8a336f075748fff72c + terminal-table (4.0.0) sha256=f504793203f8251b2ea7c7068333053f0beeea26093ec9962e62ea79f94301d2 + thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73 + tilt (2.7.0) sha256=0d5b9ba69f6a36490c64b0eee9f6e9aad517e20dcc848800a06eb116f08c6ab3 + timeout (0.6.1) sha256=78f57368a7e7bbadec56971f78a3f5ecbcfb59b7fcbb0a3ed6ddc08a5094accb + tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f + turbo-rails (2.0.23) sha256=ee0d90733aafff056cf51ff11e803d65e43cae258cc55f6492020ec1f9f9315f + tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f + uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6 + useragent (0.16.11) sha256=700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844 + view_component (4.10.0) + warning (1.6.0) sha256=a49cdfae19fb77d19afff2efbe45f8ab759e9cd25b4e4ce2c79dbaf46bdb6c9e + webrick (1.9.2) sha256=beb4a15fc474defed24a3bda4ffd88a490d517c9e4e6118c3edce59e45864131 + websocket (1.2.11) sha256=b7e7a74e2410b5e85c25858b26b3322f29161e300935f70a0e0d3c35e0462737 + websocket-driver (0.8.0) sha256=ed0dba4b943c22f17f9a734817e808bc84cdce6a7e22045f5315aa57676d4962 + websocket-extensions (0.1.5) sha256=1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241 + xpath (3.2.0) sha256=6dfda79d91bb3b949b947ecc5919f042ef2f399b904013eb3ef6d20dd3a4082e + yard (0.9.43) sha256=cf8733a8f0485df2a162927e9b5f182215a61f6d22de096b8f402c726a1c5821 + yard-activesupport-concern (0.0.1) sha256=be790cb0efc23e2e87677063598ac8b743586154657bbd9655a7f03ce78390ef + yard-lint (1.5.1) sha256=41d194855b4f54aa957a0337720c6f48e252e4a31d7412c46cc94a12399c0149 + zeitwerk (2.7.5) sha256=d8da92128c09ea6ec62c949011b00ed4a20242b255293dd66bf41545398f73dd RUBY VERSION - ruby 4.1.0.dev + ruby 4.0.1 BUNDLED WITH 4.0.6 diff --git a/gemfiles/rails_main_head.gemfile b/gemfiles/rails_main_head.gemfile new file mode 100644 index 000000000..5aef04216 --- /dev/null +++ b/gemfiles/rails_main_head.gemfile @@ -0,0 +1,50 @@ +# This file was generated by Appraisal + +source "https://rubygems.org" + +ruby "4.1.0.dev" + +gem "rails", github: "rails/rails", branch: "main" +gem "rack", git: "https://github.com/rack/rack", ref: "8a4475a9f416a72e5b02bd7817e4a8ed684f29b0" + +group :development, :test do + gem "allocation_stats" + gem "appraisal", "~> 2" + gem "appraisal-run", "~> 1.1" + gem "benchmark-ips", "~> 2" + gem "better_html" + gem "bundler" + gem "capybara", "~> 3" + gem "cuprite" + gem "dry-initializer", require: true + gem "erb_lint" + gem "haml", "~> 7" + gem "jbuilder", "~> 2" + gem "m", "~> 1" + gem "method_source", "~> 1" + gem "minitest", "~> 6" + gem "minitest-mock" + gem "nokogiri", "1.19.3" + gem "propshaft", "~> 1" + gem "puma", ">= 6" + gem "rake", "~> 13" + gem "rails-dom-testing", "~> 2.3.0" + gem "reactionview" + gem "redis" + gem "rspec-rails", "~> 8" + gem "rubocop-md", "~> 2" + gem "selenium-webdriver", "~> 4" + gem "simplecov-console", "< 1" + gem "simplecov", "< 1" + gem "slim", "~> 5" + gem "sprockets-rails", "~> 3" + gem "standard", "~> 1" + gem "tailwindcss-rails", "~> 4" + gem "turbo-rails", "~> 2" + gem "warning" + gem "yard-activesupport-concern", "< 1" + gem "yard-lint", "~> 1.5" + gem "yard", "< 1" +end + +gemspec path: "../" diff --git a/lib/view_component/base.rb b/lib/view_component/base.rb index cd206b86d..e8a349d3e 100644 --- a/lib/view_component/base.rb +++ b/lib/view_component/base.rb @@ -103,7 +103,7 @@ def initialize # Returns HTML that has been escaped by the respective template handler. # # @return [String] - def render_in(view_context, &block) + def render_in(view_context, **_, &block) self.class.__vc_compile(raise_errors: true) @view_context = view_context diff --git a/lib/view_component/collection.rb b/lib/view_component/collection.rb index 7d2fb32f4..9747ecc9c 100644 --- a/lib/view_component/collection.rb +++ b/lib/view_component/collection.rb @@ -10,7 +10,7 @@ class Collection delegate :size, to: :@collection - def render_in(view_context, &block) + def render_in(view_context, **_, &block) components.map do |component| component.render_in(view_context, &block) end.join(rendered_spacer(view_context)).html_safe diff --git a/lib/view_component/instrumentation.rb b/lib/view_component/instrumentation.rb index ee59d7351..92d719c47 100644 --- a/lib/view_component/instrumentation.rb +++ b/lib/view_component/instrumentation.rb @@ -8,7 +8,7 @@ def self.included(mod) mod.prepend(self) unless self <= ViewComponent::Instrumentation end - def render_in(view_context, &block) + def render_in(view_context, **_, &block) return super if !Rails.application.config.view_component.instrumentation_enabled.present? payload = { diff --git a/test/sandbox/test/rendering_test.rb b/test/sandbox/test/rendering_test.rb index c559841ef..85697cc98 100644 --- a/test/sandbox/test/rendering_test.rb +++ b/test/sandbox/test/rendering_test.rb @@ -20,7 +20,7 @@ def test_render_inline_allocations MyComponent.__vc_ensure_compiled with_instrumentation_enabled_option(false) do - assert_allocations({"4.1" => 67..68, "4.0" => 67, "3.4" => 72..74, "3.3" => 75, "3.2" => 78..79}) do + assert_allocations({"4.1" => 69..70, "4.0" => 69..161, "3.4" => 75..76, "3.3" => 77..79, "3.2" => 80..82}) do render_inline(MyComponent.new) end end @@ -34,7 +34,7 @@ def test_render_collection_inline_allocations ViewComponent::CompileCache.cache.delete(ProductComponent) ProductComponent.__vc_ensure_compiled - allocations = {"4.1" => 66, "4.0" => 66, "3.4" => 70..82, "3.3" => 89, "3.2" => 92..93} + allocations = {"4.1" => 71, "4.0" => 71..160, "3.4" => 86..88, "3.3" => 92..94, "3.2" => 97..98} products = [Product.new(name: "Radio clock"), Product.new(name: "Mints")] notice = "On sale" @@ -794,11 +794,14 @@ def test_collection_component_missing_default_parameter_name end def test_collection_component_missing_custom_parameter_name_with_activemodel - assert_raises ViewComponent::MissingCollectionArgumentError do + error = assert_raises do render_inline( MissingCollectionParameterWithActiveModelComponent.with_collection([Product.new(name: "Mints")]) ) end + + # Rails main raises ActiveModel::UnknownAttributeError before ViewComponent can check + assert [ViewComponent::MissingCollectionArgumentError, ActiveModel::UnknownAttributeError].include?(error.class) end def test_collection_component_present_custom_parameter_name_with_activemodel