summaryrefslogtreecommitdiff
path: root/spec/ruby/core/proc/parameters_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/proc/parameters_spec.rb')
-rw-r--r--spec/ruby/core/proc/parameters_spec.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/spec/ruby/core/proc/parameters_spec.rb b/spec/ruby/core/proc/parameters_spec.rb
index 6c21784ab6..972596d2ea 100644
--- a/spec/ruby/core/proc/parameters_spec.rb
+++ b/spec/ruby/core/proc/parameters_spec.rb
@@ -33,6 +33,16 @@ describe "Proc#parameters" do
it "regards named parameters in lambda as optional if lambda: false keyword used" do
-> x { }.parameters(lambda: false).first.first.should == :opt
end
+
+ it "regards named parameters in procs and lambdas as required if lambda keyword is truthy" do
+ proc {|x| }.parameters(lambda: 123).first.first.should == :req
+ -> x { }.parameters(lambda: 123).first.first.should == :req
+ end
+
+ it "ignores the lambda keyword if it is nil" do
+ proc {|x|}.parameters(lambda: nil).first.first.should == :opt
+ -> x { }.parameters(lambda: nil).first.first.should == :req
+ end
end
it "regards optional keyword parameters in procs as optional" do
@@ -160,4 +170,8 @@ describe "Proc#parameters" do
[:block, :_]
]
end
+
+ it "returns :nokey for **nil parameter" do
+ proc { |**nil| }.parameters.should == [[:nokey]]
+ end
end