class Prettyrb::Nodes::IfNode

Public Instance Methods

body_node() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 18
def body_node
  if unless_node?
    children[2]
  else
    children[1]
  end
end
conditions() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 14
def conditions
  children[0]
end
else_body_node() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 26
def else_body_node
  if unless_node?
    children[1]
  else
    children[2]
  end
end
else_branch() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 54
def else_branch
  if has_elsif?
    elsif_branches.last.children[2]
  else
    else_body_node
  end
end
elsif_branches() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 46
def elsif_branches
  if has_elsif?
    [else_body_node] + else_body_node.elsif_branches
  else
    []
  end
end
has_elsif?() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 34
def has_elsif?
  else_body_node&.type == :if && children[1]&.type != :if
end
if_type() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 4
def if_type
  if is_elsif?
    "elsif"
  elsif unless_node?
    "unless"
  else
    "if"
  end
end
is_elsif?() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 38
def is_elsif?
  parent&.type == :if && parent&.children[1]&.type != :if
end
unless_node?() click to toggle source
# File lib/prettyrb/nodes/if_node.rb, line 42
def unless_node?
  children[1].nil? && children[2] != :if
end