fix: unable to use keyword args when including the Labels
extension
#1500
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description 📖
This pull request fixes a bug which is described in:
Background 📜
For backwards compatibility,
activejob
usesruby2_keywords
to capture arguments that are passed toperform_now
andperform_later
.That ensures that it can serialize and deserialize keyword arguments differently.
GoodJob::ActiveJobExtensions::Labels
overrides theinitialize
method, but it does not useruby2_keywords
, so by the timeactivejob
receives the arguments, keyword arguments have become a plainHash
.The Fix 🔨
Passing all arguments as-is, by using
...
instead of*arguments
, since the module doesn't need to use the parameters.Notes ✏️
Using
ruby2_keywords(:initialize)
would also work, but since this library no longer supports CRuby 2.6 and 2.7,...
is the way to go.