class Sexp2Ruby::Node::Rescue
Public Instance Methods
to_s(exp)
click to toggle source
# File lib/sexp2ruby/node/rescue.rb, line 4 def to_s(exp) body = process(exp.shift) unless exp.first.first == :resbody els = process(exp.pop) unless exp.last.first == :resbody body ||= "# do nothing" simple = exp.size == 1 && exp.resbody.size <= 3 && !exp.resbody.block && !exp.resbody.return resbodies = [] until exp.empty? do resbody = exp.shift simple &&= resbody[1] == s(:array) simple &&= resbody[2] != nil && resbody[2].node_type != :block resbodies << process(resbody) end if els "#{indent body}\n#{resbodies.join(LF)}\nelse\n#{indent els}" elsif simple resbody = resbodies.first.sub(/\n\s*/, ' ') "#{body} #{resbody}" else "#{indent body}\n#{resbodies.join(LF)}" end end