summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-proc-ext/test/proc.rb
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-06-25 23:33:56 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-06-25 23:33:56 +0900
commitc19f5efaaf1b8b8156d2fb6f1daafbcc1270ebc9 (patch)
tree9e8eed3bc9e18e8f383e5cf53f8dc73ccd56a743 /mrbgems/mruby-proc-ext/test/proc.rb
parent3f13196cbbe2e9fcf7e349388f29cf1588c8e022 (diff)
parent9cafc5e1051765d67d451f4b456996300ddf355c (diff)
downloadmruby-c19f5efaaf1b8b8156d2fb6f1daafbcc1270ebc9.tar.gz
mruby-c19f5efaaf1b8b8156d2fb6f1daafbcc1270ebc9.zip
Merge pull request #2423 from ksss/proc-parameters
Implement Proc#parameters
Diffstat (limited to 'mrbgems/mruby-proc-ext/test/proc.rb')
-rw-r--r--mrbgems/mruby-proc-ext/test/proc.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/mrbgems/mruby-proc-ext/test/proc.rb b/mrbgems/mruby-proc-ext/test/proc.rb
index 1565873a0..bca9b463a 100644
--- a/mrbgems/mruby-proc-ext/test/proc.rb
+++ b/mrbgems/mruby-proc-ext/test/proc.rb
@@ -43,6 +43,18 @@ assert('Proc#curry') do
assert_raise(ArgumentError) { b.curry(1) }
end
+assert('Proc#parameters') do
+ assert_equal([], Proc.new {}.parameters)
+ assert_equal([], Proc.new {||}.parameters)
+ assert_equal([[:opt, :a]], Proc.new {|a|}.parameters)
+ assert_equal([[:req, :a]], lambda {|a|}.parameters)
+ assert_equal([[:opt, :a]], lambda {|a=nil|}.parameters)
+ assert_equal([[:req, :a]], ->(a){}.parameters)
+ assert_equal([[:rest, :a]], Proc.new {|*a|}.parameters)
+ assert_equal([[:opt, :a], [:opt, :b], [:opt, :c], [:opt, :d], [:rest, :e], [:opt, :f], [:opt, :g], [:block, :h]], Proc.new {|a,b,c=:c,d=:d,*e,f,g,&h|}.parameters)
+ assert_equal([[:req, :a], [:req, :b], [:opt, :c], [:opt, :d], [:rest, :e], [:req, :f], [:req, :g], [:block, :h]], lambda {|a,b,c=:c,d=:d,*e,f,g,&h|}.parameters)
+end
+
assert('Proc#to_proc') do
proc = Proc.new {}
assert_equal proc, proc.to_proc