class Sexp2Ruby::Node::Ensure

Public Instance Methods

to_s(exp) click to toggle source
# File lib/sexp2ruby/node/ensure.rb, line 4
def to_s(exp)
  body = process exp.shift
  ens  = exp.shift
  ens  = nil if ens == s(:nil)
  ens  = process(ens) || "# do nothing"
  ens = "begin\n#{ens}\nend\n" if ens =~ /(^|\n)rescue/

  body.sub!(/\n\s*end\z/, '')
  body = indent(body) unless body =~ /(^|\n)rescue/

  "#{body}\nensure\n#{indent ens}"
end