-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
define_method :"test select on a Module" do
nodes = build('module Hello end').select(Ruby::Module)
assert_equal 1, nodes.size
end
Ruby::Module #, @parent=#>, @ldelim=nil, @rdelim=nil, @parent=#>, @body=[:bodystmt, #>, nil, nil, nil], @ldelim=#, @parent=#>, @rdelim=#, @parent=#>, @parent=#]>> Ruby::Token #, @parent=#, @parent=#>, @ldelim=nil, @rdelim=nil, @parent=#>, @body=[:bodystmt, #>, nil, nil, nil], @ldelim=#, @rdelim=#, @parent=#>, @parent=#]>>> Ruby::Const #, @parent=#>, @ldelim=nil, @rdelim=nil, @parent=#, @body=[:bodystmt, #>, nil, nil, nil], @ldelim=#, @parent=#>, @rdelim=#, @parent=#>, @parent=#]>>> Ruby::Whitespace " " Ruby::Identifier #, @parent=#, @ldelim=nil, @rdelim=nil, @parent=#, @body=[:bodystmt, #>, nil, nil, nil], @ldelim=#, @parent=#>, @rdelim=#, @parent=#>, @parent=#]>>>> Ruby::Whitespace " " Symbol :bodystmt E 1) Error: test select by a single klass(TraversalTest): NoMethodError: private method `select' called for :bodystmt:Symbol
Fix:
# traversal.rb
children.flatten.compact.inject(result) do |result, node|
return result if node.class.to_s == 'Symbol'
result + node.select(*args, &block)
end
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels