What has kept a 2004 pop/rock track by The Killers in the UK Top 100 for 14 years? The world may never know.
Sometimes when testing you want to verify that a set of arguments was passed to a method. However, you may not care about all of the arguments, maybe just a subset.
RSpec-Mocks has the idea of partial matching built in.
expect(double).to receive(:msg).with(hash_including(much: "wow"))
The trouble with pessimistic (
~>) versioning is that it still won’t catch pre-release library versions… or will it.
It actually can allow ‘beta’ versions by adding an ‘x’ to the version you’d like to catch.
gem "rails", "~> 5.x"
Since ‘beta’ versions (
5.0.0.beta3) actually register as higher than
5.0.0, the pessimistic operator will not catch the beta version. Gem versioning shows any version with a letter as ‘pre-release’ which is how
alpha versions work.
Using the ‘x’ as a wildcard will allow pre-release gem versions to be caught.