Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Change arity specs to distinguish Proc & lambdas [redmine:5694]

  • Loading branch information...
commit 611765c84ff0ff55e38e9cf7e8232b93311b3210 1 parent 184c810
@marcandre marcandre authored
Showing with 26 additions and 10 deletions.
  1. +26 −10 core/proc/shared/arity.rb
View
36 core/proc/shared/arity.rb
@@ -3,23 +3,39 @@
@p = ProcSpecs::Arity.new
end
- it "returns -1 for a block taking one optional argument" do
- @p.arity_check { |a = 0| }.should == -1
- end
-
it "returns -1 for a block taking |a = 0, *b| argument " do
@p.arity_check { |a = 0, *b| }.should == -1
end
- it "returns -2 for a block taking |a, b = 0| argument " do
- @p.arity_check { |a, b = 0| }.should == -2
+ it "returns -1 for a lambda taking one optional argument" do
+ lambda { |a = 0| }.arity.should == -1
+ end
+
+ it "returns -2 for a lambda taking |a, b = 0| argument " do
+ lambda { |a, b = 0| }.arity.should == -2
+ end
+
+ it "returns -2 for a lambda taking |a, b = 0, c = 0| argument " do
+ lambda { |a, b = 0, c = 0| }.arity.should == -2
+ end
+
+ it "returns -2 for a lambda taking |(a, b), c = 0| argument " do
+ lambda { |(a, b), c = 0| }.arity.should == -2
+ end
+
+ it "returns 0 for a Proc taking one optional argument" do
+ Proc.new { |a = 0| }.arity.should == 0
+ end
+
+ it "returns 1 for a Proc taking |a, b = 0| argument " do
+ Proc.new { |a, b = 0| }.arity.should == 1
end
- it "returns -2 for a block taking |a, b = 0, c = 0| argument " do
- @p.arity_check { |a, b = 0, c = 0| }.should == -2
+ it "returns 1 for a Proc taking |a, b = 0, c = 0| argument " do
+ Proc.new { |a, b = 0, c = 0| }.arity.should == 1
end
- it "returns -2 for a block taking |(a, b), c = 0| argument " do
- @p.arity_check { |(a, b), c = 0| }.should == -2
+ it "returns 1 for a Proc taking |(a, b), c = 0| argument " do
+ Proc.new { |(a, b), c = 0| }.arity.should == 1
end
end
Please sign in to comment.
Something went wrong with that request. Please try again.