Releases: thoughtbot/shoulda-matchers
v6.2.0
6.2.0 - 2024-03-15
Bug fixes
- Allow beginless and endless ranges in validates_inclusion_of by @pjpires (#1615)
- Ensure uniqueness validation matcher works with STI by @matsales28 (#1610)
Features
- Add
against
method in allow_value matcher by @EduardoSCosta (#1543) - Add support for
strict_loading
option in association matchers by @rhannequin and @laicuRoot (#1607) - Add
have_delegated_type
matcher by @matsales28 (#1606) - Add support for
foreign_type
qualifier onAssociationMatcher
by @matsales28 (#1609)
Improvements
- Lazy load
ActionController
andRouting
matchers forActionController::TestCase
by @ilianah (#1613) - Call dynamic-readme reusable workflow by @stefannibrasil (#1617)
- Update dependencies by @matsales28 (#1611)
- Fix inline documentation for
is_greater_than
invalidate_comparison_of
matcher by @jeduardo824 (#1616) - Fix forgotten colon in documentation by @hotoolong (#1612)
v6.1.0
6.1.0 - 2024-01-19
Bug fixes
- Fix negative form of
validate_numericality
matcher by @matsales28 (#1603)
Features
- Add support for negated matcher on have_secure_password matcher by @amalrik (#1593)
- Add
encrypt
matcher to test usage of theencrypts
macro by @theforestvn88 (#1581) - Add
query_constraints
qualifier on the association matchers by @matsales28 (#1604)
Improvements
- Remove
array_column?
helper fromValidateAbsenceOfMatcher
by @jarenas9539 (#1562) - Bump rubocop version to 1.59.0 by @vsppedro (#1600)
- Update Ruby version to 3.3.0 by @VSSPedro(#1599)
- Fix
REPRODUCTION_SCRIPT.md
link returning 404 by @vsppedro (#1602) - Add support for globally enabled frozen-string-literals by @amalrik (#1598)
- Adjust typos in the documentation by @matsales28 (#1597)
v6.0.0
Backward-incompatible changes
- Drop support for Rails 5.2 and 6.0 as well as Ruby 2.6 and 2.7 they've been end-of-lifed by @dougmrqs and @HeitorMC.
The gem now supports Ruby 3.0+ and Rails 6.1+. (#1521, #1522, #1547, #1548)
Bug fixes
- Fix validate_uniqueness_of matcher not supporting column of the type timestampz by @callahat. (#1544)
- Ensure that validation specs work for ActiveModel without ActiveRecord by @stonefield. (#1580)
Features
- Add normalize matcher by @stephannv. (#1558)
- Add validates_comparison_of matcher by @matsales28. (#1552)
- Add support for Ruby 3.2 by @petergoldstein. (#1536)
- Add support for Ruby 3.3.0-rc1 by @mtasaka and @vsppedro. ([#1579], #1588)
- Add support for Rails 7.1 by @matsales28. (#1573)
- Add support for array attributes on validate_length_of matcher by @jarenas9539. #1560
- Allow length validation on associations by @matsales28. (#1569)
- Improve have_db_index to better handle columns with multiple indexes by @abrom. (#1542)
- Implement of_sql_type qualifier on have_db_column matcher by @matsales28. (#1555)
Improvements
- When an unrelated error is seen with negated allow_value, give a hint by @matsales28. (#1570)
Thanks everyone for the contributions!
v5.3.0
v5.2.0
Features
-
Add without_scopes method to enum matcher. (#1453)
-
Add support for Ruby 3.1. (#1474)
-
Add allow_blank method to validate_presence_of matcher. (#1499)
-
Add support for Rails 7.0. No new Rails 7.0 features are supported, but only existing features that broke with the upgrade. (#1506)
Thanks @technicalpickles, @dewyze, @andreLumor for your contributions!
v5.1.0
v5.0.0
Bug fixes
- Replace
in?
, method from ActiveSupport, withinclude?
to prevent exception "undefined methodin?
" on non-Rails app. (#1405)
Features
-
Add support for Rails 6.1. No new Rails 6.1 features are supported, but only existing features that broke with the upgrade. (#1418)
-
Add support for RVM (Ruby Version Manager) to setting up local environment. (#1424)
-
Add support for alias in matcher define_enum. (#1419)
Improvements
- Remove deprecated warnings emitted on Rails 6.1 in ActiveModel errors. (#1444)
Backward-incompatible changes
-
Drop support for Rails 4.2, 5.0 and 5.1 as well as Ruby 2.4 and 2.5
they've been end-of-lifed. The gem now supports Ruby 2.6+ and Rails 5.2+. (#1412, #1415, #1422, #1428, #1429) -
Remove deprecated matchers:
use_before_filter
,use_after_filter
,use_around_filter
andallow_mass_assignment_of
. (#1430, #1431)
v5.0.0.rc1
Bug fixes
- Replace
in?
, method from ActiveSupport, withinclude?
to prevent exception "undefined methodin?
" on non-Rails app. (#1405)
Features
-
Add support for Rails 6.1. No new Rails 6.1 features are supported, but only
existing features that broke with the upgrade. (#1418) -
Add support for RVM (Ruby Version Manager) to setting up local environment. (#1424)
-
Add support for alias in matcher define_enum. (#1419)
Backward-incompatible changes
-
Drop support for Rails 4.2, 5.0 and 5.1 as well as Ruby 2.4 and 2.5
they've been end-of-lifed. The gem now supports Ruby 2.6+ and Rails 5.2+.(#1412, #1415, #1422, #1428, #1429) -
Remove deprecated matchers:
use_before_filter
,use_after_filter
,use_around_filter
andallow_mass_assignment_of
. (#1430, #1431)
v4.5.1
v4.5.0
Features
- Add support for has_secure_password custom attributes. (#1356)
Bug fixes
- Fix
bundle exec yard doc
replacing pygments.rb with rouge to keep the documentation up to date. (#1343) - Fix have_db_column.with_options not raising an error when the user adds an invalid value. (#1358)
- Fix default value of assossiation_matcher.validate option. It was returning false instead of true. (#1378)
- Fix validate_absence_of failing for array columns. (#1383)
Improvements
- Replace all links with http to https. (#1340)
- Update the links for have_and_belong_to_many, have_many and have_one in the README to redirect the user to where the matcher description starts. (#1348)
- Drop
git ls-files
in gemspec to help downstreams maintenance, because they often need to build packages in an environment that does not have git. (#1354) - Add comment about no support of validate_uniqueness_of(:item).scoped_to(array). (#1355)
- Improve error message for assossiation_matcher.with_foreign_key option. (#1376)