Ruby generator support for "begin" blocks
This commit is contained in:
parent
92b43a7500
commit
04aa8f6546
|
@ -52,6 +52,22 @@ module Oga
|
|||
"#{var_names.join(', ')} = #{val_str}"
|
||||
end
|
||||
|
||||
##
|
||||
# Processes a `begin` node.
|
||||
#
|
||||
# @param [Oga::Ruby::Node] ast
|
||||
# @return [String]
|
||||
#
|
||||
def on_begin(ast)
|
||||
body = process(ast.to_a[0])
|
||||
|
||||
<<-EOF
|
||||
begin
|
||||
#{body}
|
||||
end
|
||||
EOF
|
||||
end
|
||||
|
||||
##
|
||||
# Processes an equality node.
|
||||
#
|
||||
|
|
|
@ -104,6 +104,15 @@ module Oga
|
|||
Node.new(:block, [self, args, yield])
|
||||
end
|
||||
|
||||
##
|
||||
# Wraps the current node in a `begin` node.
|
||||
#
|
||||
# @return [Oga::Ruby::Node]
|
||||
#
|
||||
def wrap
|
||||
Node.new(:begin, [self])
|
||||
end
|
||||
|
||||
##
|
||||
# Wraps the current node in an if statement node.
|
||||
#
|
||||
|
|
|
@ -37,6 +37,19 @@ describe Oga::Ruby::Generator do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#on_begin' do
|
||||
it 'returns a String' do
|
||||
number = Oga::Ruby::Node.new(:lit, %w{10})
|
||||
node = Oga::Ruby::Node.new(:begin, [number])
|
||||
|
||||
@generator.on_begin(node).should == <<-EOF
|
||||
begin
|
||||
10
|
||||
end
|
||||
EOF
|
||||
end
|
||||
end
|
||||
|
||||
describe '#on_eq' do
|
||||
it 'returns a String' do
|
||||
var = Oga::Ruby::Node.new(:lit, %w{number})
|
||||
|
|
|
@ -88,6 +88,16 @@ describe Oga::Ruby::Node do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#wrap' do
|
||||
it 'returns a begin Node' do
|
||||
number = described_class.new(:lit, %w{10})
|
||||
wrapped = number.wrap
|
||||
|
||||
wrapped.type.should == :begin
|
||||
wrapped.to_a.should == [number]
|
||||
end
|
||||
end
|
||||
|
||||
describe '#if_true' do
|
||||
it 'returns an if statement Node' do
|
||||
condition = described_class.new(:lit, %w{number})
|
||||
|
|
Loading…
Reference in New Issue