1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
# frozen_string_literal: true
module Unparser
module Writer
class Send
# Writer for send as attribute assignment
class AttributeAssignment < self
children :receiver, :selector, :first_argument
def dispatch
emit_receiver
emit_attribute
write('=')
if arguments.one?
visit(first_argument)
else
parentheses { delimited(arguments) }
end
end
def emit_send_mlhs
emit_receiver
write(details.non_assignment_selector)
end
private
def emit_receiver
visit(receiver)
emit_operator
end
def emit_attribute
write(details.non_assignment_selector)
end
end # AttributeAssignment
end # Send
end # Writer
end # Unparser
|