class Unparser::Emitter::Block
Block
emitter
Private Instance Methods
dispatch()
click to toggle source
# File lib/unparser/emitter/block.rb, line 14 def dispatch emit_target ws write_open target_writer.emit_heredoc_reminders if n_send?(target) emit_block_arguments unless n_lambda?(target) emit_optional_body_ensure_rescue(body) write_close end
emit_block_arguments()
click to toggle source
# File lib/unparser/emitter/block.rb, line 75 def emit_block_arguments return if numblock? || arguments.children.empty? ws parentheses('|', '|') do writer_with(Args, arguments).emit_block_arguments end end
emit_lambda_arguments()
click to toggle source
# File lib/unparser/emitter/block.rb, line 67 def emit_lambda_arguments parentheses { writer_with(Args, arguments).emit_lambda_arguments } end
emit_send_target()
click to toggle source
# File lib/unparser/emitter/block.rb, line 61 def emit_send_target target_writer.emit_receiver target_writer.emit_selector target_writer.emit_arguments_without_heredoc_body end
emit_target()
click to toggle source
# File lib/unparser/emitter/block.rb, line 49 def emit_target case target.type when :send emit_send_target when :lambda visit(target) emit_lambda_arguments unless node.type.equal?(:numblock) else visit(target) end end
need_do?()
click to toggle source
# File lib/unparser/emitter/block.rb, line 24 def need_do? body && (n_rescue?(body) || n_ensure?(body)) end
numblock?()
click to toggle source
# File lib/unparser/emitter/block.rb, line 71 def numblock? node.type.equal?(:numblock) end
target_writer()
click to toggle source
# File lib/unparser/emitter/block.rb, line 44 def target_writer writer_with(Writer::Send::Regular, target) end
write_close()
click to toggle source
# File lib/unparser/emitter/block.rb, line 36 def write_close if need_do? k_end else write('}') end end
write_open()
click to toggle source
# File lib/unparser/emitter/block.rb, line 28 def write_open if need_do? write('do') else write('{') end end