Path to this page:
Subject: CVS commit: pkgsrc/devel/ruby-shoulda-matchers
From: Takahiro Kambe
Date: 2015-06-11 19:22:16
Message id: 20150611172216.AD18898@cvs.netbsd.org
Log Message:
Update ruby-shoulda-matchers to 2.8.0.
pkgsrc change: allow build on Ruby 2.2.
# 2.8.0
### Deprecations
* `ensure_length_of` has been renamed to `validate_length_of`.
`ensure_length_of` is deprecated and will be removed in 3.0.0.
* `set_the_flash` has been renamed to `set_flash`. `set_the_flash` is
deprecated and will be removed in 3.0.0.
* `set_session(:foo)` is deprecated in favor of `set_session[:foo]`.
`set_session(:foo)` will be invalid syntax in 3.0.0.
* Using `should set_session[:key].to(nil)` to assert that that a value has not
been set is deprecated. Please use `should_not set_session[:key]` instead.
In 3.0.0, `should set_session[:key].to(nil)` will only pass if the value is
truly nil.
### Bug fixes
* Fix `delegate_method` so that it works again with shoulda-context. ([#591])
* Fix `validate_uniqueness_of` when used with `scoped_to` so that when one of
the scope attributes is a polymorphic `*_type` attribute and the model has
another validation on the same attribute, the matcher does not fail with an
error. ([#592])
* Fix `has_many` used with `through` so that when the association does not
exist, and the matcher fails, it does not raise an error when producing the
failure message. ([#588])
* Fix `have_and_belong_to_many` used with `join_table` so that it does not fail
when `foreign_key` and/or `association_foreign_key` was specified on the
association as a symbol instead of a string. ([#584])
* Fix `allow_value` when an i18n translation key is passed to `with_message` and
the `:against` option is used to specify an alternate attribute. A bug here
also happened to affect `validate_confirmation_of` when an i18n translation
key is passed to `with_message`. ([#593])
* Fix `class_name` qualifier for association matchers so that if the model being
referenced is namespaced, the matcher will correctly resolve the class before
checking it against the association's `class_name`. ([#537])
* Fix `validate_inclusion_of` used with `with_message` so that it fails if given
a message that does not match the message on the validation. ([#598])
* Fix `route` matcher so that when controller and action are specified in hash
notation (e.g. `posts#show`), route parameters such as `id` do not need to be
specified as a string but may be specified as a number as well. ([#602])
* Fix `allow_value`, `validate_numericality_of` and `validate_inclusion_of` so
that they handle RangeErrors emitted from ActiveRecord 4.2. These exceptions
arise whenever we attempt to set an attribute using a value that lies outside
the range of the column (assuming the column is an integer). RangeError is now
treated specially, failing the test instead of bubbling up as an error.
([#634], [#637], [#642])
### Features
* Add ability to test `:primary_key` option on associations. ([#597])
* Add `allow_blank` qualifier to `validate_uniqueness_of` to complement
the `allow_blank` option. ([#543])
* Change `set_session` so that #[] and #to qualifiers are optional, similar to
`set_flash`. That is, you can now say `should set_session` to assert that any
flash value has been set, or `should set_session.to('value')` to assert that
any value in the session is 'value'.
* Change `set_session` so that its #to qualifier supports regexps, similar to
`set_flash`.
* Add `with_prefix` qualifier to `delegate_method` to correspond to the `prefix`
option for Rails's `delegate` macro. ([#622])
* Add support for Rails 4.2, especially fixing `serialize` matcher to remove
warning about `serialized_attributes` being deprecated. ([#627])
* Update `dependent` qualifier on association matchers to support `:destroy`,
`:delete`, `:nullify`, `:restrict`, `:restrict_with_exception`, and
`:restrict_with_error`. You can also pass `true` or `false` to assert that
the association has (or has not) been declared with *any* dependent option.
([#631])
### Improvements
* Tweak `allow_value` failure message so that it reads a bit nicer when listing
existing errors.
[#591]: https://github.com/thoughtbot/shoulda-matchers/pull/591
[#592]: https://github.com/thoughtbot/shoulda-matchers/pull/592
[#588]: https://github.com/thoughtbot/shoulda-matchers/pull/588
[#584]: https://github.com/thoughtbot/shoulda-matchers/pull/584
[#593]: https://github.com/thoughtbot/shoulda-matchers/pull/593
[#597]: https://github.com/thoughtbot/shoulda-matchers/pull/597
[#537]: https://github.com/thoughtbot/shoulda-matchers/pull/537
[#598]: https://github.com/thoughtbot/shoulda-matchers/pull/598
[#602]: https://github.com/thoughtbot/shoulda-matchers/pull/602
[#543]: https://github.com/thoughtbot/shoulda-matchers/pull/543
[#622]: https://github.com/thoughtbot/shoulda-matchers/pull/622
[#627]: https://github.com/thoughtbot/shoulda-matchers/pull/627
[#631]: https://github.com/thoughtbot/shoulda-matchers/pull/631
[#634]: https://github.com/thoughtbot/shoulda-matchers/pull/634
[#637]: https://github.com/thoughtbot/shoulda-matchers/pull/637
[#642]: https://github.com/thoughtbot/shoulda-matchers/pull/642
# 2.7.0
### Deprecations
* `ensure_inclusion_of` has been renamed to `validate_inclusion_of`.
`ensure_inclusion_of` is deprecated and will be removed in 3.0.0.
* `ensure_exclusion_of` has been renamed to `validate_exclusion_of`.
`ensure_exclusion_of` is deprecated and will be removed in 3.0.0.
### Bug fixes
* Fix `delegate_method` so that it does not raise an error if the method that
returns the delegate object is private.
* Warn when `ensure_inclusion_of` is chained with `.in_array([false, true])`
as well as with `.in_array([true, false])`.
* Fix `set_session` so that the `to` qualifier if given nil checks that the
session variable in question was set to nil (previously this actually did
nothing).
* Fix `filter_param` so that it works when `config.filter_parameters` contains
regexes.
* Fix `delegate_method` so that it can be required independent of Active
Support.
* Fix `validate_uniqueness_of`. When used against an unpersisted record whose
model contained a non-nullable column other than the one being validated, the
matcher would break. Even if the test set that column to a value beforehand,
the record had to be persisted in order for the matcher to work. Now this is
no longer the case and the record can remain unpersisted.
* Fix `validate_absence_of`: it required that a string be passed as the
attribute name rather than a symbol (which is the usual and documented usage).
### Improvements
* `have_and_belongs_to_many` now checks to make sure that the join table
contains the correct columns for the left- and right-hand side of the
association.
* Reword failure message for `delegate_method` so that it's a little more
helpful.
### Features
* Add new matcher `define_enum_for` to test usage of the `enum` macro introduced
in Rails 4.1.
Files: