mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
cd0fec3728
It can be used to get the parameters' information of method and block. There was no way to get block parameters. It was possible but ineffective to get method parameters via Method object: `tp.defined_class.method(tp.method_id).parameters` TracePoint#parameters allows us to get the information easily. [Feature #14694] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
21 lines
603 B
Ruby
21 lines
603 B
Ruby
require_relative '../../spec_helper'
|
|
|
|
describe 'TracePoint#parameters' do
|
|
it 'returns the parameters of block' do
|
|
f = proc {|x, y, z| }
|
|
parameters = nil
|
|
TracePoint.new(:b_call) {|tp| parameters = tp.parameters }.enable do
|
|
f.call
|
|
parameters.should == [[:opt, :x], [:opt, :y], [:opt, :z]]
|
|
end
|
|
end
|
|
|
|
it 'returns the parameters of lambda block' do
|
|
f = lambda {|x, y, z| }
|
|
parameters = nil
|
|
TracePoint.new(:b_call) {|tp| parameters = tp.parameters }.enable do
|
|
f.call(1, 2, 3)
|
|
parameters.should == [[:req, :x], [:req, :y], [:req, :z]]
|
|
end
|
|
end
|
|
end
|