module RipperRubyParser::SexpHandlers::Conditionals

Public Instance Methods

process_case(exp) click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/conditionals.rb, line 38
def process_case exp
  _, expr, clauses = exp.shift 3
  s(:case, process(expr), *process(clauses))
end
process_else(exp) click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/conditionals.rb, line 67
def process_else exp
  _, body = exp.shift 2
  safe_wrap_in_block(map_body(body))
end
process_elsif(exp) click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/conditionals.rb, line 12
def process_elsif exp
  _, cond, truepart, falsepart = exp.shift 4

  s(:if, process(cond),
    wrap_in_block(map_body(truepart)),
    process(falsepart))
end
process_if(exp) click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/conditionals.rb, line 4
def process_if exp
  _, cond, truepart, falsepart = exp.shift 4

  s(:if, handle_condition(cond),
    wrap_in_block(map_body(truepart)),
    process(falsepart))
end
process_if_mod(exp) click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/conditionals.rb, line 20
def process_if_mod exp
  _, cond, truepart = exp.shift 3
  s(:if, handle_condition(cond), process(truepart), nil)
end
process_unless(exp) click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/conditionals.rb, line 30
def process_unless exp
  _, cond, truepart, falsepart = exp.shift 4
  s(:if,
    handle_condition(cond),
    process(falsepart),
    wrap_in_block(map_body(truepart)))
end
process_unless_mod(exp) click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/conditionals.rb, line 25
def process_unless_mod exp
  _, cond, truepart = exp.shift 3
  s(:if, handle_condition(cond), nil, process(truepart))
end
process_when(exp) click to toggle source
# File lib/ripper_ruby_parser/sexp_handlers/conditionals.rb, line 43
def process_when exp
  _, values, truepart, falsepart = exp.shift 4

  if falsepart.nil?
    falsepart = [nil]
  else
    falsepart = process(falsepart)
    if falsepart.first.is_a? Symbol
      falsepart = s(falsepart)
    end
  end
  falsepart = [nil] if falsepart.empty?

  values = handle_array_elements values

  truepart = map_body(truepart)
  truepart = [nil] if truepart.empty?

  s(s(:when,
      s(:array, *values),
      *truepart),
    *falsepart)
end