Only wrap followed_by nodes in begin/end
This commit is contained in:
parent
a661bf8c12
commit
f41f6ff0c8
|
@ -63,7 +63,11 @@ module Oga
|
||||||
# @return [Oga::Ruby::Node]
|
# @return [Oga::Ruby::Node]
|
||||||
#
|
#
|
||||||
def assign(other)
|
def assign(other)
|
||||||
Node.new(:assign, [self, other.wrap])
|
if other.type == :followed_by
|
||||||
|
other = other.wrap
|
||||||
|
end
|
||||||
|
|
||||||
|
Node.new(:assign, [self, other])
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -21,13 +21,25 @@ describe Oga::Ruby::Generator do
|
||||||
val = Oga::Ruby::Node.new(:lit, %w{10})
|
val = Oga::Ruby::Node.new(:lit, %w{10})
|
||||||
assign = var.assign(val)
|
assign = var.assign(val)
|
||||||
|
|
||||||
|
@generator.on_assign(assign).should == 'number = 10'
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'using a followed_by node' do
|
||||||
|
it 'returns a String' do
|
||||||
|
var = Oga::Ruby::Node.new(:lit, %w{number})
|
||||||
|
val = Oga::Ruby::Node.new(:lit, %w{10})
|
||||||
|
assign = var.assign(val.followed_by(val))
|
||||||
|
|
||||||
@generator.on_assign(assign).should == <<-EOF
|
@generator.on_assign(assign).should == <<-EOF
|
||||||
number = begin
|
number = begin
|
||||||
10
|
10
|
||||||
|
|
||||||
|
10
|
||||||
end
|
end
|
||||||
EOF
|
EOF
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#on_mass_assign' do
|
describe '#on_mass_assign' do
|
||||||
it 'returns a String' do
|
it 'returns a String' do
|
||||||
|
|
|
@ -34,11 +34,7 @@ describe Oga::Ruby::Node do
|
||||||
node = left.assign(right)
|
node = left.assign(right)
|
||||||
|
|
||||||
node.type.should == :assign
|
node.type.should == :assign
|
||||||
|
node.to_a.should == [left, right]
|
||||||
node.to_a[0].should == left
|
|
||||||
|
|
||||||
node.to_a[1].type.should == :begin
|
|
||||||
node.to_a[1].to_a[0].should == right
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue