test/ripper: nest helper classes under TestRipper module

Generic names like Node and NodeList should be namespaced properly.
This commit is contained in:
lukeg 2023-04-03 16:17:10 -04:00 committed by Hiroshi SHIBATA
parent 4218e913d8
commit 1925c6d555
No known key found for this signature in database
GPG Key ID: F9CF13417264FAC2
2 changed files with 28 additions and 27 deletions

View File

@ -4,8 +4,9 @@
#
require 'ripper'
module TestRipper; end
class Node
class TestRipper::Node
def initialize(name, *nodes)
@name = name
@children = nodes
@ -14,7 +15,7 @@ class Node
attr_reader :name, :children
def to_s
"#{@name}(#{Node.trim_nil(@children).map {|n| n.to_s }.join(',')})"
"#{@name}(#{TestRipper::Node.trim_nil(@children).map {|n| n.to_s }.join(',')})"
end
def self.trim_nil(list)
@ -36,7 +37,7 @@ class Node
end
end
class NodeList
class TestRipper::NodeList
def initialize(list = [])
@list = list
end
@ -62,7 +63,7 @@ class NodeList
end
end
class DummyParser < Ripper
class TestRipper::DummyParser < Ripper
def hook(*names)
class << self; self; end.class_eval do
names.each do |name|
@ -81,7 +82,7 @@ class DummyParser < Ripper
end
def on_stmts_new
NodeList.new
TestRipper::NodeList.new
end
def on_stmts_add(stmts, st)
@ -90,23 +91,23 @@ class DummyParser < Ripper
end
def on_void_stmt
Node.new('void')
TestRipper::Node.new('void')
end
def on_var_ref(name)
Node.new('ref', name)
TestRipper::Node.new('ref', name)
end
def on_var_alias(a, b)
Node.new('valias', a, b)
TestRipper::Node.new('valias', a, b)
end
def on_assign_error(mesg = nil, a)
Node.new('assign_error', a)
TestRipper::Node.new('assign_error', a)
end
def on_alias_error(mesg = nil, a)
Node.new('aliaserr', a)
TestRipper::Node.new('aliaserr', a)
end
def on_arg_paren(args)
@ -114,7 +115,7 @@ class DummyParser < Ripper
end
def on_args_new
NodeList.new
TestRipper::NodeList.new
end
def on_args_add(list, arg)
@ -156,7 +157,7 @@ class DummyParser < Ripper
end
def on_brace_block(params, code)
Node.new('block', params, code)
TestRipper::Node.new('block', params, code)
end
def on_block_var(params, shadow)
@ -176,7 +177,7 @@ class DummyParser < Ripper
end
def on_params(required, optional, rest, more, keyword, keyword_rest, block)
args = NodeList.new
args = TestRipper::NodeList.new
required.each do |req|
args.push(req)
@ -197,15 +198,15 @@ class DummyParser < Ripper
end
def on_assoc_new(a, b)
Node.new('assoc', a, b)
TestRipper::Node.new('assoc', a, b)
end
def on_bare_assoc_hash(assoc_list)
Node.new('assocs', *assoc_list)
TestRipper::Node.new('assocs', *assoc_list)
end
def on_assoclist_from_args(a)
Node.new('assocs', *a)
TestRipper::Node.new('assocs', *a)
end
def on_word_new
@ -217,7 +218,7 @@ class DummyParser < Ripper
end
def on_words_new
NodeList.new
TestRipper::NodeList.new
end
def on_words_add(words, word)
@ -225,7 +226,7 @@ class DummyParser < Ripper
end
def on_qwords_new
NodeList.new
TestRipper::NodeList.new
end
def on_qwords_add(words, word)
@ -233,27 +234,27 @@ class DummyParser < Ripper
end
def on_symbols_new
NodeList.new
TestRipper::NodeList.new
end
def on_symbols_add(symbols, symbol)
symbols.push Node::Sym.new(symbol)
symbols.push TestRipper::Node::Sym.new(symbol)
end
def on_qsymbols_new
NodeList.new
TestRipper::NodeList.new
end
def on_qsymbols_add(symbols, symbol)
symbols.push Node::Sym.new(symbol)
symbols.push TestRipper::Node::Sym.new(symbol)
end
def on_mlhs_new
NodeList.new
TestRipper::NodeList.new
end
def on_mlhs_paren(list)
Node.new(:mlhs, list)
TestRipper::Node.new(:mlhs, list)
end
def on_mlhs_add(list, node)
@ -277,12 +278,12 @@ class DummyParser < Ripper
end
def on_rescue(exc, *rest)
Node.new('rescue', (exc && NodeList.new(exc)), *rest)
TestRipper::Node.new('rescue', (exc && TestRipper::NodeList.new(exc)), *rest)
end
(Ripper::PARSER_EVENTS.map(&:to_s) - instance_methods(false).map {|n|n.to_s.sub(/^on_/, '')}).each do |event|
define_method(:"on_#{event}") do |*args|
Node.new(event, *args)
TestRipper::Node.new(event, *args)
end
end
end

View File

@ -16,7 +16,7 @@ class TestRipper::ParserEvents < Test::Unit::TestCase
end
def parse(str, nm = nil, &bl)
dp = DummyParser.new(str)
dp = TestRipper::DummyParser.new(str)
dp.hook(*nm, &bl) if nm
dp.parse.to_s
end