Ruby generator support for Ranges

This commit is contained in:
Yorick Peterse 2015-08-18 15:11:06 +02:00
parent ec19875530
commit 32dba554d7
2 changed files with 25 additions and 0 deletions

View File

@ -208,6 +208,21 @@ end
EOF
end
##
# Processes a Range node.
#
# @param [Oga::Ruby::Node] ast
# @return [String]
#
def on_range(ast)
start, stop = *ast
start_str = process(start)
stop_str = process(stop)
"(#{start_str}..#{stop_str})"
end
##
# Processes a string node.
#

View File

@ -185,6 +185,16 @@ end
end
end
describe '#on_range' do
it 'returns a String' do
start = Oga::Ruby::Node.new(:lit, %w{10})
stop = Oga::Ruby::Node.new(:lit, %w{20})
node = Oga::Ruby::Node.new(:range, [start, stop])
@generator.on_range(node).should == '(10..20)'
end
end
describe '#on_string' do
it 'returns a String' do
node = Oga::Ruby::Node.new(:string, %w{foo})