Pass options as keyword arguments to translation procs #529
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.
So a pattern that's heavily used in our translation data, is to use keyword arguments in translations procs rather than an option hash, e.g:
Instead of:
It makes for slightly more concise code, and gives better error messages if a key is missing.
However since the signature I18n call is
call(String, Hash)
this causes warnings on 2.7 and will break on 2.8/3.0.I can off course rewrite these callbacks, but since I believe using keyword args is often nicer, I wanted to check if there was interest in updating the signature.
AFAIK this is backward compatible, as
call(String, **Hash)
will automatically pass the keyword args as a positional hash if the proc doesn't accept keyword args: