diff options
author | Jeremy Evans <code@jeremyevans.net> | 2019-08-27 18:38:48 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2022-03-17 11:52:02 -0700 |
commit | b6804d62f822237e136e698e006c913df9990ec2 (patch) | |
tree | 49fb54048952f0ccd8a1e026c28688b025b68be3 /spec | |
parent | 29b68b89a0c0ea7de46c058fab746550398151f0 (diff) |
Make Proc#parameters support lambda keyword for returning parameters as if lambda
This makes it easier to use Proc#parameters to build wrappers.
Implements [Feature #15357]
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5677
Diffstat (limited to 'spec')
-rw-r--r-- | spec/ruby/core/proc/parameters_spec.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/spec/ruby/core/proc/parameters_spec.rb b/spec/ruby/core/proc/parameters_spec.rb index 11a38b66e3..3ced7b22ab 100644 --- a/spec/ruby/core/proc/parameters_spec.rb +++ b/spec/ruby/core/proc/parameters_spec.rb @@ -20,6 +20,21 @@ describe "Proc#parameters" do proc {|x| }.parameters.first.first.should == :opt end + ruby_version_is "3.2" do + it "sets the first element of each sub-Array to :req if argument would be required if a lambda if lambda keyword used" do + proc {|x| }.parameters(lambda: true).first.first.should == :req + proc {|y,*x| }.parameters(lambda: true).first.first.should == :req + end + + it "regards named parameters in procs as required if lambda keyword used" do + proc {|x| }.parameters(lambda: true).first.first.should == :req + end + + it "regards named parameters in lambda as optional if lambda: false keyword used" do + lambda {|x| }.parameters(lambda: false).first.first.should == :opt + end + end + it "regards optional keyword parameters in procs as optional" do proc {|x: :y| }.parameters.first.first.should == :key end |