Actions
Feature #20508
openExplicit access to *, **, &, and ...
Status:
Open
Assignee:
-
Target version:
-
Description
I find debugging and certain meta-programming tasks challenging because there's no explicit APIs for accessing certain types of arguments in Ruby.
Here's some example code:
def splats(one, *, two: nil, **, &)
# These work
p(*)
p(**)
# But the block doesn't show a proc.
p(&)
# This would show [:one, :two, :_]
p binding.local_variables
end
splats(:arg, two: true) do
42
end
I'm not sure how to access the &
variable, unless I name it. The same applies to endless ruby methods.
I'd like to see a way to explicitly call bindings for those methods. Something like this (not sure if binding is the right place for it):
def splats(one, *, true: nil, **, &)
binding.arguments # Returns an array
binding.keyword_arguments # Returns a hash
binding.block_argument # Returns a block
end
These methods would give me access to the values used to call the method.
Actions
Like1
Like0Like0Like0Like0