diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index f179f0f..a027788 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -14,6 +14,7 @@ jobs: gemfile: [ dev/gemfiles/rails-7.1.x.gemfile, dev/gemfiles/rails-7.2.x.gemfile, + dev/gemfiles/rails-8.0.x.gemfile, Gemfile ] exclude: @@ -23,10 +24,16 @@ jobs: - ruby: "3.0" gemfile: dev/gemfiles/rails-7.2.x.gemfile # Exclude rubies < 3.2 for ActiveModel ~> 8.0 + - ruby: "2.7" + gemfile: dev/gemfiles/rails-8.0.x.gemfile - ruby: "2.7" gemfile: Gemfile + - ruby: "3.0" + gemfile: dev/gemfiles/rails-8.0.x.gemfile - ruby: "3.0" gemfile: Gemfile + - ruby: "3.1" + gemfile: dev/gemfiles/rails-8.0.x.gemfile - ruby: "3.1" gemfile: Gemfile env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps diff --git a/.rubocop.yml b/.rubocop.yml index 78897c0..c050fde 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,4 @@ -require: +plugins: - rubocop-performance - rubocop-rake - rubocop-rspec diff --git a/Gemfile.lock b/Gemfile.lock index 817fc9a..934d408 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,16 +7,16 @@ PATH GEM remote: https://rubygems.org/ specs: - activemodel (8.0.2) - activesupport (= 8.0.2) - activesupport (8.0.2) + activemodel (8.1.0) + activesupport (= 8.1.0) + activesupport (8.1.0) base64 - benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + json logger (>= 1.4.2) minitest (>= 5.1) securerandom (>= 0.3) @@ -24,44 +24,43 @@ GEM uri (>= 0.13.1) ast (2.4.3) base64 (0.3.0) - benchmark (0.4.1) - bigdecimal (3.2.2) + bigdecimal (3.3.1) camertron-eprun (1.1.1) cldr-plurals-runtime-rb (1.1.0) concurrent-ruby (1.3.5) - connection_pool (2.5.3) + connection_pool (2.5.4) diff-lcs (1.6.2) drb (2.2.3) i18n (1.14.7) concurrent-ruby (~> 1.0) - json (2.12.2) + json (2.15.1) language_server-protocol (3.17.0.5) lint_roller (1.1.0) logger (1.7.0) - minitest (5.25.5) + minitest (5.26.0) parallel (1.27.0) - parser (3.3.8.0) + parser (3.3.9.0) ast (~> 2.4.1) racc - prism (1.4.0) + prism (1.6.0) racc (1.8.1) rainbow (3.1.1) rake (13.3.0) - regexp_parser (2.10.0) - rspec (3.13.1) + regexp_parser (2.11.3) + rspec (3.13.2) rspec-core (~> 3.13.0) rspec-expectations (~> 3.13.0) rspec-mocks (~> 3.13.0) - rspec-core (3.13.5) + rspec-core (3.13.6) rspec-support (~> 3.13.0) rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-mocks (3.13.5) + rspec-mocks (3.13.6) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-support (3.13.4) - rubocop (1.77.0) + rspec-support (3.13.6) + rubocop (1.81.6) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -69,20 +68,20 @@ GEM parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 2.9.3, < 3.0) - rubocop-ast (>= 1.45.1, < 2.0) + rubocop-ast (>= 1.47.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.45.1) + rubocop-ast (1.47.1) parser (>= 3.3.7.2) prism (~> 1.4) - rubocop-performance (1.25.0) + rubocop-performance (1.26.1) lint_roller (~> 1.1) rubocop (>= 1.75.0, < 2.0) - rubocop-ast (>= 1.38.0, < 2.0) + rubocop-ast (>= 1.47.1, < 2.0) rubocop-rake (0.7.1) lint_roller (~> 1.1) rubocop (>= 1.72.1) - rubocop-rspec (3.6.0) + rubocop-rspec (3.7.0) lint_roller (~> 1.1) rubocop (~> 1.72, >= 1.72.1) ruby-progressbar (1.13.0) @@ -94,10 +93,10 @@ GEM tzinfo tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (3.1.4) - unicode-emoji (~> 4.0, >= 4.0.4) - unicode-emoji (4.0.4) - uri (1.0.3) + unicode-display_width (3.2.0) + unicode-emoji (~> 4.1) + unicode-emoji (4.1.0) + uri (1.0.4) PLATFORMS ruby @@ -114,5 +113,49 @@ DEPENDENCIES rubocop-rake rubocop-rspec +CHECKSUMS + activemodel (8.1.0) sha256=43aa66565a601483e6c614d02cb2090168c91a803ddb954e2b0ef24d22de745e + activesupport (8.1.0) sha256=d4adf40725be7bbc2a16936a6cf41b175a46ba0c5ccdb703ea4ed7c8801e070a + ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383 + base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b + bigdecimal (3.3.1) sha256=eaa01e228be54c4f9f53bf3cc34fe3d5e845c31963e7fcc5bedb05a4e7d52218 + camertron-eprun (1.1.1) sha256=9a8e337916445e62648f6a4f35d229302fc44c50549cc881bff1e296ccf9ce4b + cldr-plurals-runtime-rb (1.1.0) sha256=2353875af89be9fac049c60891e973825b24a979eeef7274093c9ff5fd56dfa9 + concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6 + connection_pool (2.5.4) sha256=e9e1922327416091f3f6542f5f4446c2a20745276b9aa796dd0bb2fd0ea1e70a + diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962 + drb (2.2.3) sha256=0b00d6fdb50995fe4a45dea13663493c841112e4068656854646f418fda13373 + i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f + json (2.15.1) sha256=b1c1b2e7c116eb1903e0ce0c374783e6ead8747a0f9eca132d274018ebb80b89 + language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc + lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87 + logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203 + minitest (5.26.0) sha256=f5817ad09f863a4f7eac917707c1ca5c09cdc4a35e17d91171760178324d2c30 + parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130 + parser (3.3.9.0) sha256=94d6929354b1a6e3e1f89d79d4d302cc8f5aa814431a6c9c7e0623335d7687f2 + postcode_validator (1.0.2) + prism (1.6.0) sha256=bfc0281a81718c4872346bc858dc84abd3a60cae78336c65ad35c8fbff641c6b + racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f + rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a + rake (13.3.0) sha256=96f5092d786ff412c62fde76f793cc0541bd84d2eb579caa529aa8a059934493 + regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4 + rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587 + rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d + rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836 + rspec-mocks (3.13.6) sha256=78b137ae5e91c5072bf81d40d78189aa911e965a81adc245e2d8d9ba624d9b4e + rspec-support (3.13.6) sha256=2e8de3702427eab064c9352fe74488cc12a1bfae887ad8b91cba480ec9f8afb2 + rubocop (1.81.6) sha256=a7095eca1b79bbbe7d81c74c11ed2c532faa868bd9d31c2f12b7be7fbfbfef42 + rubocop-ast (1.47.1) sha256=592682017855408b046a8190689490763aecea175238232b1b526826349d01ae + rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834 + rubocop-rake (0.7.1) sha256=3797f2b6810c3e9df7376c26d5f44f3475eda59eb1adc38e6f62ecf027cbae4d + rubocop-rspec (3.7.0) sha256=b7b214da112034db9c6d00f2d811a354847e870f7b6ed2482b29649c3d42058f + ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33 + securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1 + twitter_cldr (6.14.0) sha256=5d18c23097008bcda542a260535766fdfc49d982d5eedf2486d19f368aa8c7a4 + tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b + unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42 + unicode-emoji (4.1.0) sha256=4997d2d5df1ed4252f4830a9b6e86f932e2013fbff2182a9ce9ccabda4f325a5 + uri (1.0.4) sha256=34485d137c079f8753a0ca1d883841a7ba2e5fae556e3c30c2aab0dde616344b + BUNDLED WITH - 2.6.2 + 2.7.2 diff --git a/dev/gemfiles/rails-7.1.x.gemfile b/dev/gemfiles/rails-7.1.x.gemfile index 220a91a..9a3990f 100644 --- a/dev/gemfiles/rails-7.1.x.gemfile +++ b/dev/gemfiles/rails-7.1.x.gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' gemspec path: '../..' +gem 'activemodel', '~> 7.1.0' +gem 'bigdecimal' gem 'logger' gem 'mutex_m' -gem 'bigdecimal' -gem 'activemodel', '~> 7.1.0' diff --git a/dev/gemfiles/rails-7.2.x.gemfile b/dev/gemfiles/rails-7.2.x.gemfile index b159ff6..a5c4de9 100644 --- a/dev/gemfiles/rails-7.2.x.gemfile +++ b/dev/gemfiles/rails-7.2.x.gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' gemspec path: '../..' +gem 'activemodel', '~> 7.2.0' +gem 'bigdecimal' gem 'logger' gem 'mutex_m' -gem 'bigdecimal' -gem 'activemodel', '~> 7.2.0' diff --git a/dev/gemfiles/rails-8.0.x.gemfile b/dev/gemfiles/rails-8.0.x.gemfile new file mode 100644 index 0000000..1ccf4bc --- /dev/null +++ b/dev/gemfiles/rails-8.0.x.gemfile @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +source 'https://rubygems.org' + +gemspec path: '../..' +gem 'activemodel', '~> 8.0.0' diff --git a/spec/support/active_model_helper.rb b/spec/support/active_model_helper.rb index 729277b..c39c4f2 100644 --- a/spec/support/active_model_helper.rb +++ b/spec/support/active_model_helper.rb @@ -2,6 +2,7 @@ class TestModel include ActiveModel::Model + attr_accessor :zipcode, :country end