diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 9df6c37c2..7a8e47a4f 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -33,10 +33,14 @@ jobs: fail-fast: false matrix: ruby-version: [ '3.3', '3.2', '3.1', '3.0', 'ruby-head' ] - gemfile: [ '7.1', '7.0', '6.1', 'edge' ] + gemfile: [ '7.2', '7.1', '7.0', '6.1', 'edge' ] exclude: + - ruby-version: '3.1' + gemfile: 'edge' - ruby-version: '3.0' gemfile: 'edge' + - ruby-version: '3.0' + gemfile: '7.2' env: BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile steps: @@ -57,6 +61,7 @@ jobs: with: working-directory: demo bundler-cache: true + ruby-version: 3.3.2 - name: Run tests working-directory: demo run: bundle exec rake test:all diff --git a/.gitignore b/.gitignore index 11ea80a61..0f46ab259 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ demo/db/*.sqlite3 demo/db/*.sqlite3-shm demo/db/*.sqlite3-wal demo/doc/screenshots/**/*.diff.png +demo/doc/screenshots/**/*.base.png demo/log/*.log demo/storage demo/tmp/ @@ -73,3 +74,4 @@ docker-compose.override.yml .gnupg/ .ssh/ .gitconfig +.gk/ diff --git a/.yarnrc b/.yarnrc index 0ad68e3dc..287234dc9 100644 --- a/.yarnrc +++ b/.yarnrc @@ -2,4 +2,4 @@ # yarn lockfile v1 -lastUpdateCheck 1718162593302 +lastUpdateCheck 1728862732146 diff --git a/demo/Gemfile b/demo/Gemfile index b8e0dc784..ccc4c21bb 100644 --- a/demo/Gemfile +++ b/demo/Gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" gem "bootstrap_form", path: ".." -gem "rails", "~> 7.1.1" +gem "rails", "~> 7.2.1" gem "bootsnap", require: false gem "cssbundling-rails" @@ -11,7 +11,7 @@ gem "jbuilder" gem "jsbundling-rails" gem "puma" gem "sprockets-rails", require: "sprockets/railtie" -gem "sqlite3", "~> 1.4" +gem "sqlite3" gem "tzinfo-data", platforms: %i[mingw mswin x64_mingw jruby] group :development, :test do @@ -24,5 +24,6 @@ end group :test do gem "capybara-screenshot-diff" + gem "chunky_png", "~> 1.4" gem "selenium-webdriver" end diff --git a/demo/Gemfile.lock b/demo/Gemfile.lock index 06cf716b3..3e47a2a49 100644 --- a/demo/Gemfile.lock +++ b/demo/Gemfile.lock @@ -8,86 +8,82 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) + actioncable (7.2.1) + actionpack (= 7.2.1) + activesupport (= 7.2.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.3.4) - actionpack (= 7.1.3.4) - activejob (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.1.3.4) - actionpack (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activesupport (= 7.1.3.4) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp + actionmailbox (7.2.1) + actionpack (= 7.2.1) + activejob (= 7.2.1) + activerecord (= 7.2.1) + activestorage (= 7.2.1) + activesupport (= 7.2.1) + mail (>= 2.8.0) + actionmailer (7.2.1) + actionpack (= 7.2.1) + actionview (= 7.2.1) + activejob (= 7.2.1) + activesupport (= 7.2.1) + mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.1.3.4) - actionview (= 7.1.3.4) - activesupport (= 7.1.3.4) + actionpack (7.2.1) + actionview (= 7.2.1) + activesupport (= 7.2.1) nokogiri (>= 1.8.5) racc - rack (>= 2.2.4) + rack (>= 2.2.4, < 3.2) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.3.4) - actionpack (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) + useragent (~> 0.16) + actiontext (7.2.1) + actionpack (= 7.2.1) + activerecord (= 7.2.1) + activestorage (= 7.2.1) + activesupport (= 7.2.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.3.4) - activesupport (= 7.1.3.4) + actionview (7.2.1) + activesupport (= 7.2.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.3.4) - activesupport (= 7.1.3.4) + activejob (7.2.1) + activesupport (= 7.2.1) globalid (>= 0.3.6) - activemodel (7.1.3.4) - activesupport (= 7.1.3.4) - activerecord (7.1.3.4) - activemodel (= 7.1.3.4) - activesupport (= 7.1.3.4) + activemodel (7.2.1) + activesupport (= 7.2.1) + activerecord (7.2.1) + activemodel (= 7.2.1) + activesupport (= 7.2.1) timeout (>= 0.4.0) - activestorage (7.1.3.4) - actionpack (= 7.1.3.4) - activejob (= 7.1.3.4) - activerecord (= 7.1.3.4) - activesupport (= 7.1.3.4) + activestorage (7.2.1) + actionpack (= 7.2.1) + activejob (= 7.2.1) + activerecord (= 7.2.1) + activesupport (= 7.2.1) marcel (~> 1.0) - activesupport (7.1.3.4) + activesupport (7.2.1) base64 bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) - mutex_m - tzinfo (~> 2.0) - addressable (2.8.6) - public_suffix (>= 2.0.2, < 6.0) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) + addressable (2.8.7) + public_suffix (>= 2.0.2, < 7.0) base64 (0.2.0) bigdecimal (3.1.8) bindex (0.8.1) - bootsnap (1.18.3) + bootsnap (1.18.4) msgpack (~> 1.2) builder (3.3.0) capybara (3.40.0) @@ -99,36 +95,36 @@ GEM rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - capybara-screenshot-diff (1.8.3) + capybara-screenshot-diff (1.9.0) actionpack (>= 6.1, < 8) capybara (>= 2, < 4) - chunky_png (~> 1.3) chunky_png (1.4.0) - concurrent-ruby (1.3.3) + concurrent-ruby (1.3.4) connection_pool (2.4.1) crass (1.0.6) - cssbundling-rails (1.4.0) + cssbundling-rails (1.4.1) railties (>= 6.0.0) date (3.3.4) debug (1.9.2) irb (~> 1.10) reline (>= 0.3.8) drb (2.2.1) - erubi (1.12.0) + erubi (1.13.0) globalid (1.2.1) activesupport (>= 6.1) htmlbeautifier (1.4.3) - i18n (1.14.5) + i18n (1.14.6) concurrent-ruby (~> 1.0) io-console (0.7.2) - irb (1.13.1) + irb (1.14.1) rdoc (>= 4.0.0) reline (>= 0.4.2) - jbuilder (2.12.0) + jbuilder (2.13.0) actionview (>= 5.0.0) activesupport (>= 5.0.0) - jsbundling-rails (1.3.0) + jsbundling-rails (1.3.1) railties (>= 6.0.0) + logger (1.6.1) loofah (2.22.0) crass (~> 1.0.2) nokogiri (>= 1.12.0) @@ -140,10 +136,9 @@ GEM marcel (1.0.4) matrix (0.4.2) mini_mime (1.1.5) - minitest (5.23.1) - msgpack (1.7.2) - mutex_m (0.2.0) - net-imap (0.4.12) + minitest (5.25.1) + msgpack (1.7.3) + net-imap (0.4.16) date net-protocol net-pop (0.1.2) @@ -153,25 +148,25 @@ GEM net-smtp (0.5.0) net-protocol nio4r (2.7.3) - nokogiri (1.16.5-aarch64-linux) + nokogiri (1.16.7-aarch64-linux) racc (~> 1.4) - nokogiri (1.16.5-arm-linux) + nokogiri (1.16.7-arm-linux) racc (~> 1.4) - nokogiri (1.16.5-arm64-darwin) + nokogiri (1.16.7-arm64-darwin) racc (~> 1.4) - nokogiri (1.16.5-x86-linux) + nokogiri (1.16.7-x86-linux) racc (~> 1.4) - nokogiri (1.16.5-x86_64-darwin) + nokogiri (1.16.7-x86_64-darwin) racc (~> 1.4) - nokogiri (1.16.5-x86_64-linux) + nokogiri (1.16.7-x86_64-linux) racc (~> 1.4) psych (5.1.2) stringio - public_suffix (5.0.5) - puma (6.4.2) + public_suffix (6.0.1) + puma (6.4.3) nio4r (~> 2.0) - racc (1.8.0) - rack (3.0.11) + racc (1.8.1) + rack (3.1.7) rack-session (2.0.0) rack (>= 3.0.0) rack-test (2.1.0) @@ -179,20 +174,20 @@ GEM rackup (2.1.0) rack (>= 3) webrick (~> 1.8) - rails (7.1.3.4) - actioncable (= 7.1.3.4) - actionmailbox (= 7.1.3.4) - actionmailer (= 7.1.3.4) - actionpack (= 7.1.3.4) - actiontext (= 7.1.3.4) - actionview (= 7.1.3.4) - activejob (= 7.1.3.4) - activemodel (= 7.1.3.4) - activerecord (= 7.1.3.4) - activestorage (= 7.1.3.4) - activesupport (= 7.1.3.4) + rails (7.2.1) + actioncable (= 7.2.1) + actionmailbox (= 7.2.1) + actionmailer (= 7.2.1) + actionpack (= 7.2.1) + actiontext (= 7.2.1) + actionview (= 7.2.1) + activejob (= 7.2.1) + activemodel (= 7.2.1) + activerecord (= 7.2.1) + activestorage (= 7.2.1) + activesupport (= 7.2.1) bundler (>= 1.15.0) - railties (= 7.1.3.4) + railties (= 7.2.1) rails-dom-testing (2.2.0) activesupport (>= 5.0.0) minitest @@ -200,10 +195,10 @@ GEM rails-html-sanitizer (1.6.0) loofah (~> 2.21) nokogiri (~> 1.14) - railties (7.1.3.4) - actionpack (= 7.1.3.4) - activesupport (= 7.1.3.4) - irb + railties (7.2.1) + actionpack (= 7.2.1) + activesupport (= 7.2.1) + irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) @@ -212,48 +207,49 @@ GEM rdoc (6.7.0) psych (>= 4.0.0) regexp_parser (2.9.2) - reline (0.5.8) + reline (0.5.10) io-console (~> 0.5) - rexml (3.2.9) - strscan + rexml (3.3.8) rubyzip (2.3.2) - selenium-webdriver (4.21.1) + securerandom (0.3.1) + selenium-webdriver (4.25.0) base64 (~> 0.2) + logger (~> 1.4) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) sprockets (4.2.1) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) - sprockets-rails (3.5.1) + sprockets-rails (3.5.2) actionpack (>= 6.1) activesupport (>= 6.1) sprockets (>= 3.0.0) - sqlite3 (1.7.3-aarch64-linux) - sqlite3 (1.7.3-arm-linux) - sqlite3 (1.7.3-arm64-darwin) - sqlite3 (1.7.3-x86-linux) - sqlite3 (1.7.3-x86_64-darwin) - sqlite3 (1.7.3-x86_64-linux) - stringio (3.1.0) - strscan (3.1.0) - thor (1.3.1) + sqlite3 (2.1.0-aarch64-linux-gnu) + sqlite3 (2.1.0-arm-linux-gnu) + sqlite3 (2.1.0-arm64-darwin) + sqlite3 (2.1.0-x86-linux-gnu) + sqlite3 (2.1.0-x86_64-darwin) + sqlite3 (2.1.0-x86_64-linux-gnu) + stringio (3.1.1) + thor (1.3.2) timeout (0.4.1) tzinfo (2.0.6) concurrent-ruby (~> 1.0) + useragent (0.16.10) web-console (4.2.1) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webrick (1.8.1) - websocket (1.2.10) + webrick (1.8.2) + websocket (1.2.11) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.15) + zeitwerk (2.7.0) PLATFORMS aarch64-linux @@ -267,16 +263,17 @@ DEPENDENCIES bootsnap bootstrap_form! capybara-screenshot-diff + chunky_png (~> 1.4) cssbundling-rails debug htmlbeautifier jbuilder jsbundling-rails puma - rails (~> 7.1.1) + rails (~> 7.2.1) selenium-webdriver sprockets-rails - sqlite3 (~> 1.4) + sqlite3 tzinfo-data web-console diff --git a/demo/bin/setup b/demo/bin/setup index 0f5f3857b..3cd5a9d78 100755 --- a/demo/bin/setup +++ b/demo/bin/setup @@ -23,7 +23,7 @@ FileUtils.chdir APP_ROOT do # end puts "\n== Preparing database ==" - system! "bin/rails db:setup" + system! "bin/rails db:prepare" puts "\n== Removing old logs and tempfiles ==" system! "bin/rails log:clear tmp:clear" diff --git a/demo/config/environments/development.rb b/demo/config/environments/development.rb index 456d26f88..f886cb4e6 100644 --- a/demo/config/environments/development.rb +++ b/demo/config/environments/development.rb @@ -60,7 +60,7 @@ config.active_job.verbose_enqueue_logs = true # Suppress logger output for asset requests. - # config.assets.quiet = true + config.assets.quiet = true # Raises error for missing translations. # config.i18n.raise_on_missing_translations = true diff --git a/demo/config/environments/production.rb b/demo/config/environments/production.rb index 1c2922edb..9e417f3f2 100644 --- a/demo/config/environments/production.rb +++ b/demo/config/environments/production.rb @@ -13,7 +13,7 @@ config.eager_load = true # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false + config.consider_all_requests_local = false config.action_controller.perform_caching = true # Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment @@ -26,7 +26,7 @@ # Compress CSS using a preprocessor. # config.assets.css_compressor = :sass - # Do not fallback to assets pipeline if a precompiled asset is missed. + # Do not fall back to assets pipeline if a precompiled asset is missed. config.assets.compile = false # Enable serving of images, stylesheets, and JavaScripts from an asset server. @@ -44,6 +44,10 @@ # config.action_cable.url = "wss://example.com/cable" # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] + # Assume all access to the app is happening through a SSL-terminating reverse proxy. + # Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies. + # config.assume_ssl = true + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. config.force_ssl = true @@ -55,7 +59,7 @@ # Prepend all log lines with the following tags. config.log_tags = [:request_id] - # Info include generic and useful information about system operation, but avoids logging too much + # "info" includes generic and useful information about system operation, but avoids logging too much # information to avoid inadvertent exposure of personally identifiable information (PII). If you # want to log everything, set the level to "debug". config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info") @@ -64,8 +68,8 @@ # config.cache_store = :mem_cache_store # Use a real queuing backend for Active Job (and separate queues per environment). - # config.active_job.queue_adapter = :resque - # config.active_job.queue_name_prefix = "demo_production" + # config.active_job.queue_adapter = :resque + # config.active_job.queue_name_prefix = "dummy_production" config.action_mailer.perform_caching = false diff --git a/demo/config/environments/test.rb b/demo/config/environments/test.rb index d1e70ecee..e3e639ba0 100644 --- a/demo/config/environments/test.rb +++ b/demo/config/environments/test.rb @@ -24,17 +24,17 @@ } # Show full error reports and disable caching. - config.consider_all_requests_local = true + config.consider_all_requests_local = true config.action_controller.perform_caching = false config.cache_store = :null_store - # Raise exceptions instead of rendering exception templates. + # Render exception templates for rescuable exceptions and raise for other exceptions. config.action_dispatch.show_exceptions = :rescuable # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false - # Store uploaded files on the local file system in a temporary directory + # Store uploaded files on the local file system in a temporary directory. config.active_storage.service = :test if config.respond_to?(:active_storage) config.action_mailer.perform_caching = false diff --git a/demo/db/migrate/20241013183910_add_service_name_to_active_storage_blobs.active_storage.rb b/demo/db/migrate/20241013183910_add_service_name_to_active_storage_blobs.active_storage.rb new file mode 100644 index 000000000..b10e40e8a --- /dev/null +++ b/demo/db/migrate/20241013183910_add_service_name_to_active_storage_blobs.active_storage.rb @@ -0,0 +1,22 @@ +# This migration comes from active_storage (originally 20190112182829) +class AddServiceNameToActiveStorageBlobs < ActiveRecord::Migration[6.0] + def up + return unless table_exists?(:active_storage_blobs) + + return if column_exists?(:active_storage_blobs, :service_name) + + add_column :active_storage_blobs, :service_name, :string + + if (configured_service = ActiveStorage::Blob.service.name) + ActiveStorage::Blob.unscoped.update_all(service_name: configured_service) # rubocop:disable Rails/SkipsModelValidations + end + + change_column :active_storage_blobs, :service_name, :string, null: false + end + + def down + return unless table_exists?(:active_storage_blobs) + + remove_column :active_storage_blobs, :service_name + end +end diff --git a/demo/db/migrate/20241013183911_create_active_storage_variant_records.active_storage.rb b/demo/db/migrate/20241013183911_create_active_storage_variant_records.active_storage.rb new file mode 100644 index 000000000..95fd27fa6 --- /dev/null +++ b/demo/db/migrate/20241013183911_create_active_storage_variant_records.active_storage.rb @@ -0,0 +1,28 @@ +# This migration comes from active_storage (originally 20191206030411) +class CreateActiveStorageVariantRecords < ActiveRecord::Migration[6.0] + def change + return unless table_exists?(:active_storage_blobs) + + # Use Active Record's configured type for primary key + create_table :active_storage_variant_records, id: primary_key_type, if_not_exists: true do |t| + t.belongs_to :blob, null: false, index: false, type: blobs_primary_key_type + t.string :variation_digest, null: false + + t.index %i[blob_id variation_digest], name: "index_active_storage_variant_records_uniqueness", unique: true + t.foreign_key :active_storage_blobs, column: :blob_id + end + end + + private + + def primary_key_type + config = Rails.configuration.generators + config.options[config.orm][:primary_key_type] || :primary_key + end + + def blobs_primary_key_type + pkey_name = connection.primary_key(:active_storage_blobs) + pkey_column = connection.columns(:active_storage_blobs).find { |c| c.name == pkey_name } + pkey_column.bigint? ? :bigint : pkey_column.type + end +end diff --git a/demo/db/migrate/20241013183912_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb b/demo/db/migrate/20241013183912_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb new file mode 100644 index 000000000..93c8b85ad --- /dev/null +++ b/demo/db/migrate/20241013183912_remove_not_null_on_active_storage_blobs_checksum.active_storage.rb @@ -0,0 +1,8 @@ +# This migration comes from active_storage (originally 20211119233751) +class RemoveNotNullOnActiveStorageBlobsChecksum < ActiveRecord::Migration[6.0] + def change + return unless table_exists?(:active_storage_blobs) + + change_column_null(:active_storage_blobs, :checksum, true) + end +end diff --git a/demo/db/schema.rb b/demo/db/schema.rb index c96edeb37..a98d9bb92 100644 --- a/demo/db/schema.rb +++ b/demo/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20_220_109_230_956) do +ActiveRecord::Schema.define(version: 2024_10_13_183912) do create_table "action_mailbox_inbound_emails", force: :cascade do |t| t.integer "status", default: 0, null: false t.string "message_id", null: false @@ -25,9 +25,9 @@ t.text "body" t.string "record_type", null: false t.bigint "record_id", null: false - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false - t.index %w[record_type record_id name], name: "index_action_text_rich_texts_uniqueness", unique: true + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true end create_table "active_storage_attachments", force: :cascade do |t| @@ -35,9 +35,9 @@ t.string "record_type", null: false t.bigint "record_id", null: false t.bigint "blob_id", null: false - t.datetime "created_at", precision: 6, null: false + t.datetime "created_at", null: false t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" - t.index %w[record_type record_id name blob_id], name: "index_active_storage_attachments_uniqueness", unique: true + t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true end create_table "active_storage_blobs", force: :cascade do |t| @@ -48,14 +48,14 @@ t.string "service_name", null: false t.bigint "byte_size", null: false t.string "checksum" - t.datetime "created_at", precision: 6, null: false + t.datetime "created_at", null: false t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true end create_table "active_storage_variant_records", force: :cascade do |t| t.bigint "blob_id", null: false t.string "variation_digest", null: false - t.index %w[blob_id variation_digest], name: "index_active_storage_variant_records_uniqueness", unique: true + t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true end create_table "addresses", force: :cascade do |t| @@ -64,13 +64,13 @@ t.string "city" t.string "state" t.string "zip_code" - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end create_table "bogons", force: :cascade do |t| - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false t.integer "food_waste_main" end @@ -83,8 +83,8 @@ t.text "preferences" t.boolean "terms", default: false t.string "type" - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false end add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" diff --git a/demo/doc/screenshots/bootstrap/readme/00_example.png b/demo/doc/screenshots/bootstrap/readme/00_example.png index b341338cf..8f9a2f9d9 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/00_example.png and b/demo/doc/screenshots/bootstrap/readme/00_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/01_example.png b/demo/doc/screenshots/bootstrap/readme/01_example.png index 6bf4d866d..ddc0dbf0f 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/01_example.png and b/demo/doc/screenshots/bootstrap/readme/01_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/02_example.png b/demo/doc/screenshots/bootstrap/readme/02_example.png index 18e40e038..2def10678 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/02_example.png and b/demo/doc/screenshots/bootstrap/readme/02_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/03_example.png b/demo/doc/screenshots/bootstrap/readme/03_example.png index 4c57e99f5..49e7e673b 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/03_example.png and b/demo/doc/screenshots/bootstrap/readme/03_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/04_example.png b/demo/doc/screenshots/bootstrap/readme/04_example.png index c46284ca1..2722e2d9b 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/04_example.png and b/demo/doc/screenshots/bootstrap/readme/04_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/05_example.png b/demo/doc/screenshots/bootstrap/readme/05_example.png index 6d8c02671..ae2b67dee 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/05_example.png and b/demo/doc/screenshots/bootstrap/readme/05_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/06_example.png b/demo/doc/screenshots/bootstrap/readme/06_example.png index 222940dcb..cc54ac65f 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/06_example.png and b/demo/doc/screenshots/bootstrap/readme/06_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/07_example.png b/demo/doc/screenshots/bootstrap/readme/07_example.png index 156c92042..7c4c02da1 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/07_example.png and b/demo/doc/screenshots/bootstrap/readme/07_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/08_example.png b/demo/doc/screenshots/bootstrap/readme/08_example.png index d6857c70f..1142c5572 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/08_example.png and b/demo/doc/screenshots/bootstrap/readme/08_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/09_example.png b/demo/doc/screenshots/bootstrap/readme/09_example.png index f1a603878..05642f351 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/09_example.png and b/demo/doc/screenshots/bootstrap/readme/09_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/10_example.png b/demo/doc/screenshots/bootstrap/readme/10_example.png index d2157dec6..a97a846e4 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/10_example.png and b/demo/doc/screenshots/bootstrap/readme/10_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/11_example.png b/demo/doc/screenshots/bootstrap/readme/11_example.png index 100f4616a..ed036161c 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/11_example.png and b/demo/doc/screenshots/bootstrap/readme/11_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/12_example.png b/demo/doc/screenshots/bootstrap/readme/12_example.png index d2038f1de..f00620ae5 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/12_example.png and b/demo/doc/screenshots/bootstrap/readme/12_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/13_example.png b/demo/doc/screenshots/bootstrap/readme/13_example.png index 414d65580..f36111746 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/13_example.png and b/demo/doc/screenshots/bootstrap/readme/13_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/14_example.png b/demo/doc/screenshots/bootstrap/readme/14_example.png index 03066565d..4d6bbacd7 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/14_example.png and b/demo/doc/screenshots/bootstrap/readme/14_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/15_example.png b/demo/doc/screenshots/bootstrap/readme/15_example.png index a80459b11..b1c11336a 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/15_example.png and b/demo/doc/screenshots/bootstrap/readme/15_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/16_example.png b/demo/doc/screenshots/bootstrap/readme/16_example.png index 269e32286..d6fcb66f7 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/16_example.png and b/demo/doc/screenshots/bootstrap/readme/16_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/17_example.png b/demo/doc/screenshots/bootstrap/readme/17_example.png index 6f6bfc88f..ed1b83df4 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/17_example.png and b/demo/doc/screenshots/bootstrap/readme/17_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/18_example.png b/demo/doc/screenshots/bootstrap/readme/18_example.png index 4d9a6539f..ad7115241 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/18_example.png and b/demo/doc/screenshots/bootstrap/readme/18_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/19_example.png b/demo/doc/screenshots/bootstrap/readme/19_example.png index 260f5a9dc..48c1540de 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/19_example.png and b/demo/doc/screenshots/bootstrap/readme/19_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/20_example.png b/demo/doc/screenshots/bootstrap/readme/20_example.png index 55007beaa..82c288dcd 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/20_example.png and b/demo/doc/screenshots/bootstrap/readme/20_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/21_example.png b/demo/doc/screenshots/bootstrap/readme/21_example.png index 98802cb43..16582623a 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/21_example.png and b/demo/doc/screenshots/bootstrap/readme/21_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/22_example.png b/demo/doc/screenshots/bootstrap/readme/22_example.png index 13fc60f42..2458f71f1 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/22_example.png and b/demo/doc/screenshots/bootstrap/readme/22_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/23_example.png b/demo/doc/screenshots/bootstrap/readme/23_example.png index 2d565d9e8..a49a616da 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/23_example.png and b/demo/doc/screenshots/bootstrap/readme/23_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/24_example.png b/demo/doc/screenshots/bootstrap/readme/24_example.png index 4ea722047..873c39a41 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/24_example.png and b/demo/doc/screenshots/bootstrap/readme/24_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/25_example.png b/demo/doc/screenshots/bootstrap/readme/25_example.png index ccc2344fa..22fadd88a 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/25_example.png and b/demo/doc/screenshots/bootstrap/readme/25_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/26_example.png b/demo/doc/screenshots/bootstrap/readme/26_example.png index b844dd16a..cf512cc3f 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/26_example.png and b/demo/doc/screenshots/bootstrap/readme/26_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/27_example.png b/demo/doc/screenshots/bootstrap/readme/27_example.png index 1b3da669a..4912613ba 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/27_example.png and b/demo/doc/screenshots/bootstrap/readme/27_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/28_example.png b/demo/doc/screenshots/bootstrap/readme/28_example.png index 38febad7d..59b157a50 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/28_example.png and b/demo/doc/screenshots/bootstrap/readme/28_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/29_example.png b/demo/doc/screenshots/bootstrap/readme/29_example.png index 366869b40..01f9acd6f 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/29_example.png and b/demo/doc/screenshots/bootstrap/readme/29_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/30_example.png b/demo/doc/screenshots/bootstrap/readme/30_example.png index 366869b40..01f9acd6f 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/30_example.png and b/demo/doc/screenshots/bootstrap/readme/30_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/31_example.png b/demo/doc/screenshots/bootstrap/readme/31_example.png index d16b1cc5b..7c713caf4 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/31_example.png and b/demo/doc/screenshots/bootstrap/readme/31_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/32_example.png b/demo/doc/screenshots/bootstrap/readme/32_example.png index 093cc6e74..784f1f6db 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/32_example.png and b/demo/doc/screenshots/bootstrap/readme/32_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/33_example.png b/demo/doc/screenshots/bootstrap/readme/33_example.png index 40914fe0c..97c652b4a 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/33_example.png and b/demo/doc/screenshots/bootstrap/readme/33_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/34_example.png b/demo/doc/screenshots/bootstrap/readme/34_example.png index fbd0ca1d2..2412250d4 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/34_example.png and b/demo/doc/screenshots/bootstrap/readme/34_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/35_example.png b/demo/doc/screenshots/bootstrap/readme/35_example.png index 790491ddf..55261b49a 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/35_example.png and b/demo/doc/screenshots/bootstrap/readme/35_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/36_example.png b/demo/doc/screenshots/bootstrap/readme/36_example.png index 859244886..633faa057 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/36_example.png and b/demo/doc/screenshots/bootstrap/readme/36_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/37_example.png b/demo/doc/screenshots/bootstrap/readme/37_example.png index b0778a239..4da253e8a 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/37_example.png and b/demo/doc/screenshots/bootstrap/readme/37_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/38_example.png b/demo/doc/screenshots/bootstrap/readme/38_example.png index 954467a58..3110bbf27 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/38_example.png and b/demo/doc/screenshots/bootstrap/readme/38_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/39_example.png b/demo/doc/screenshots/bootstrap/readme/39_example.png index 0ba3ae702..bcb761e90 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/39_example.png and b/demo/doc/screenshots/bootstrap/readme/39_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/40_example.png b/demo/doc/screenshots/bootstrap/readme/40_example.png index 87510127a..91a2d9f0a 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/40_example.png and b/demo/doc/screenshots/bootstrap/readme/40_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/41_example.png b/demo/doc/screenshots/bootstrap/readme/41_example.png index fd9e75a28..f952d167e 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/41_example.png and b/demo/doc/screenshots/bootstrap/readme/41_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/42_example.png b/demo/doc/screenshots/bootstrap/readme/42_example.png index fd4ecaa77..47ea376e5 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/42_example.png and b/demo/doc/screenshots/bootstrap/readme/42_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/43_example.png b/demo/doc/screenshots/bootstrap/readme/43_example.png index 032e0ce5a..4d5592738 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/43_example.png and b/demo/doc/screenshots/bootstrap/readme/43_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/44_example.png b/demo/doc/screenshots/bootstrap/readme/44_example.png index a07103fcb..0fbe0c5c2 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/44_example.png and b/demo/doc/screenshots/bootstrap/readme/44_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/45_example.png b/demo/doc/screenshots/bootstrap/readme/45_example.png index f08e6fc11..d89a1f455 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/45_example.png and b/demo/doc/screenshots/bootstrap/readme/45_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/46_example.png b/demo/doc/screenshots/bootstrap/readme/46_example.png index 27c42f5df..54cd55f71 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/46_example.png and b/demo/doc/screenshots/bootstrap/readme/46_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/47_example.png b/demo/doc/screenshots/bootstrap/readme/47_example.png index d2f4c6377..a368abe46 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/47_example.png and b/demo/doc/screenshots/bootstrap/readme/47_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/48_example.png b/demo/doc/screenshots/bootstrap/readme/48_example.png index b8d123776..b318a5d0f 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/48_example.png and b/demo/doc/screenshots/bootstrap/readme/48_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/49_example.png b/demo/doc/screenshots/bootstrap/readme/49_example.png index 52a3d8c65..c1997294f 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/49_example.png and b/demo/doc/screenshots/bootstrap/readme/49_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/50_example.png b/demo/doc/screenshots/bootstrap/readme/50_example.png index a9b96cc01..c250185a4 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/50_example.png and b/demo/doc/screenshots/bootstrap/readme/50_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/51_example.png b/demo/doc/screenshots/bootstrap/readme/51_example.png index 537a63ca5..d1320f095 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/51_example.png and b/demo/doc/screenshots/bootstrap/readme/51_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/52_example.png b/demo/doc/screenshots/bootstrap/readme/52_example.png index 1666a6d9d..1c5fc83cc 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/52_example.png and b/demo/doc/screenshots/bootstrap/readme/52_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/53_example.png b/demo/doc/screenshots/bootstrap/readme/53_example.png index da6ce83bf..07b258a46 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/53_example.png and b/demo/doc/screenshots/bootstrap/readme/53_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/54_example.png b/demo/doc/screenshots/bootstrap/readme/54_example.png index 9218e8100..097ea567f 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/54_example.png and b/demo/doc/screenshots/bootstrap/readme/54_example.png differ diff --git a/demo/doc/screenshots/bootstrap/readme/55_example.png b/demo/doc/screenshots/bootstrap/readme/55_example.png index cdd44f267..7b1cd60c1 100644 Binary files a/demo/doc/screenshots/bootstrap/readme/55_example.png and b/demo/doc/screenshots/bootstrap/readme/55_example.png differ diff --git a/demo/package.json b/demo/package.json index 0099d01aa..195eb21cb 100644 --- a/demo/package.json +++ b/demo/package.json @@ -3,9 +3,9 @@ "private": true, "dependencies": { "@popperjs/core": "^2.11.8", - "@rails/actioncable": "^7.1.0", - "@rails/actiontext": "^7.1.0", - "@rails/activestorage": "^7.1.0", + "@rails/actioncable": "^7.2.0", + "@rails/actiontext": "^7.2.0", + "@rails/activestorage": "^7.2.0", "@rails/ujs": "^7.1.0", "bootstrap": "^5.3.2", "bootstrap-icons": "^1.11.1", diff --git a/demo/test/application_system_test_case.rb b/demo/test/application_system_test_case.rb index 7913de3ff..e256abf22 100644 --- a/demo/test/application_system_test_case.rb +++ b/demo/test/application_system_test_case.rb @@ -1,7 +1,9 @@ require "test_helper" +require "capybara_screenshot_diff/minitest" class ApplicationSystemTestCase < ActionDispatch::SystemTestCase include Capybara::Screenshot::Diff + include CapybaraScreenshotDiff::DSL class << self def remote_selenium? = @remote_selenium ||= ENV["SELENIUM_HOST"].present? || ENV["SELENIUM_PORT"].present? @@ -28,5 +30,7 @@ def remote_selenium? = @remote_selenium ||= ENV["SELENIUM_HOST"].present? || ENV end Capybara::Screenshot.enabled = true + Capybara::Screenshot::Diff.driver = ENV.fetch("SCREENSHOT_DRIVER", "chunky_png").to_sym + Capybara.server = :puma, { Silent: true } end diff --git a/demo/test/system/bootstrap_test.rb b/demo/test/system/bootstrap_test.rb index b9247ed25..b0614a665 100644 --- a/demo/test/system/bootstrap_test.rb +++ b/demo/test/system/bootstrap_test.rb @@ -1,4 +1,5 @@ require "application_system_test_case" +require "capybara_screenshot_diff/minitest" class BootstrapTest < ApplicationSystemTestCase setup { screenshot_section :bootstrap } @@ -15,6 +16,8 @@ class BootstrapTest < ApplicationSystemTestCase sleep 0.5 screenshot header.text.downcase.tr(" ", "_"), crop: bounds(example), color_distance_limit: 2 end + + self.assertions += 1 # To avoid a warning message. end HEADERS = ["Generated HTML", "This generates", "Which outputs", "will be rendered as"].join("|").freeze diff --git a/demo/yarn.lock b/demo/yarn.lock index 738a102c7..3d7fe9567 100644 --- a/demo/yarn.lock +++ b/demo/yarn.lock @@ -117,29 +117,29 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== -"@rails/actioncable@^7.1.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.1.1.tgz#e8c49769d41f35a4473133c259cc98adc04dddf8" - integrity sha512-ZRJ9rdwFQQjRbtgJnweY0/4UQyxN6ojEGRdib0JkjnuIciv+4ok/aAeZmBJqNreTMaBqS0eHyA9hCArwN58opg== - -"@rails/actiontext@^7.1.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@rails/actiontext/-/actiontext-7.1.1.tgz#01ac458df5eff06c971b48001b03d73c67b50462" - integrity sha512-AdDK+gUa+akys1kFNgZXB6+rz3n60Of+c4TyJzUe6p5cBIjTimMaMWPSr76fyORXEBFKsCUH9bigXSAoUZKU0A== +"@rails/actioncable@^7.2.0": + version "7.2.100" + resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.2.100.tgz#86ec1c2e00c357cef1e421fd63863d5c34339ce8" + integrity sha512-7xtIENf0Yw59AFDM3+xqxPCZxev3QVAqjPmUzmgsB9eL8S/zTpB0IU9srNc7XknzJI4e09XKNnCaJRx3gfYzXA== + +"@rails/actiontext@^7.2.0": + version "7.2.100" + resolved "https://registry.yarnpkg.com/@rails/actiontext/-/actiontext-7.2.100.tgz#e235c8150d252490902f8b33026bc0a030cce8e4" + integrity sha512-46oDEZdkxpbM/7+3GwSHTRyIkH3LRZRC9OE35rMIt0FcRbjXW+2Q7RL1YYjoy7megqnoCUDZglFISJQxJ/HBZg== dependencies: - "@rails/activestorage" ">= 7.1.0-alpha" + "@rails/activestorage" ">= 7.2.0-alpha" -"@rails/activestorage@>= 7.1.0-alpha", "@rails/activestorage@^7.1.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@rails/activestorage/-/activestorage-7.1.1.tgz#3f12e8ac784f460f6a9d205744354abd79a525f2" - integrity sha512-QGBj+y4fbZt/QMMpjqnpKlzCKpDGTYrvJ+qc0QLis34AfbBLVgRo7kPzmdmeOTtwvWqpcivB9CrjTcV/C/7ruA== +"@rails/activestorage@>= 7.2.0-alpha", "@rails/activestorage@^7.2.0": + version "7.2.100" + resolved "https://registry.yarnpkg.com/@rails/activestorage/-/activestorage-7.2.100.tgz#c1e643d3c35c62c946e6f7c8d812fa567d2ce915" + integrity sha512-gohCilm1E10W51Hc9iT960xX9TP11L5TJ4W1ufs9f3h5Ncsw01S/eHgVUfcdfszqw3G+28Z0MFu999+iSpgdTg== dependencies: spark-md5 "^3.0.1" "@rails/ujs@^7.1.0": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.1.1.tgz#f8df96e406a2a824084b637880e57c257073cb05" - integrity sha512-ywGwWNiqXN3Bb1BifVQTrkWEWcAGLHW3D0JNQMQeu57LsoluRzvnenNLPsmdoDPkrmSIASDXNsJiCIpUzFj8CA== + version "7.1.400" + resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.1.400.tgz#b2a76bdccb5197b9e866954536106386c87cfab5" + integrity sha512-YwvXm3BR5tn+VCAKYGycLejMRVZE3Ionj5gFjEeGXCZnI0Rpi+7dKpmyu90kdUY7dRUFpHTdu9zZceEzFLl38w== anymatch@~3.1.2: version "3.1.3" diff --git a/gemfiles/6.1.gemfile b/gemfiles/6.1.gemfile index 19b306284..fc548c835 100644 --- a/gemfiles/6.1.gemfile +++ b/gemfiles/6.1.gemfile @@ -1,10 +1,10 @@ gems = "#{__dir__}/common.gemfile" eval File.read(gems), binding, gems # rubocop: disable Security/Eval +gem "base64" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "bigdecimal" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "drb" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") -gem "mutex_m" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") -gem "base64" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "logger" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") +gem "mutex_m" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "rails", "~> 6.1.0" gem "sqlite3", "~> 1.4" diff --git a/gemfiles/7.0.gemfile b/gemfiles/7.0.gemfile index b4518ab65..2a3524da2 100644 --- a/gemfiles/7.0.gemfile +++ b/gemfiles/7.0.gemfile @@ -1,11 +1,11 @@ gems = "#{__dir__}/common.gemfile" eval File.read(gems), binding, gems # rubocop: disable Security/Eval +gem "base64" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "bigdecimal" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "drb" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") -gem "mutex_m" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") -gem "base64" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "logger" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") +gem "mutex_m" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "rails", "~> 7.0.2" -gem "sqlite3", "~> 1.4" gem "sprockets-rails", require: "sprockets/railtie" +gem "sqlite3", "~> 1.4" diff --git a/gemfiles/7.1.gemfile b/gemfiles/7.1.gemfile index 594803017..903f18780 100644 --- a/gemfiles/7.1.gemfile +++ b/gemfiles/7.1.gemfile @@ -5,5 +5,5 @@ gem "bigdecimal" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "drb" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "mutex_m" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "rails", "~> 7.1.0" -gem "sqlite3", "~> 1.4" gem "sprockets-rails", require: "sprockets/railtie" +gem "sqlite3", "~> 1.4" diff --git a/gemfiles/7.2.gemfile b/gemfiles/7.2.gemfile new file mode 100644 index 000000000..db3479f26 --- /dev/null +++ b/gemfiles/7.2.gemfile @@ -0,0 +1,9 @@ +gems = "#{__dir__}/common.gemfile" +eval File.read(gems), binding, gems # rubocop: disable Security/Eval + +gem "bigdecimal" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") +gem "drb" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") +gem "mutex_m" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") +gem "rails", "~> 7.2.0" +gem "sprockets-rails", require: "sprockets/railtie" +gem "sqlite3" diff --git a/gemfiles/edge.gemfile b/gemfiles/edge.gemfile index 50818fb8c..9d2de7c4c 100644 --- a/gemfiles/edge.gemfile +++ b/gemfiles/edge.gemfile @@ -5,5 +5,5 @@ gem "bigdecimal" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "drb" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "mutex_m" if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.4.0") gem "rails", git: "https://github.com/rails/rails.git", branch: "main" -gem "sqlite3" gem "sprockets-rails", require: "sprockets/railtie" +gem "sqlite3" diff --git a/test/bootstrap_fields_test.rb b/test/bootstrap_fields_test.rb index aa88aad42..6455503ae 100644 --- a/test/bootstrap_fields_test.rb +++ b/test/bootstrap_fields_test.rb @@ -192,7 +192,7 @@ class BootstrapFieldsTest < ActionView::TestCase HTML - assert_equivalent_html expected, @builder.range_field(:misc, min: 0, max: 80) + assert_equivalent_html expected, @builder.range_field(:misc, min: 0, max: 80) end test "search fields are wrapped correctly" do