class Rufo::Formatter
def node_line(node, beginning: true)
def node_line(node, beginning: true) return if node.nil? # get line of node, it is only used in visit_hash right now, # so handling the following node types is enough. case node.first when :hash, :string_literal, :symbol_literal, :symbol, :vcall, :string_content, :assoc_splat, :var_ref, :dyna_symbol, :var_field node_line(node[1], beginning: beginning) when :hshptn _, _, elements, rest = node elem = if beginning (elements[0] && elements[0][0]) || rest else rest || elements.last[0] end node_line(elem, beginning: beginning) when :assoc_new # There's no line number info for empty strings or hashes. if node[1] != EMPTY_STRING && node[1] != EMPTY_HASH node_line(node[1], beginning: beginning) elsif node.last != EMPTY_STRING && node.last != EMPTY_HASH node_line(node.last, beginning: beginning) else return end when :assoclist_from_args node_line(beginning ? node[1][0] : node[1].last, beginning: beginning) when :@label, :@int, :@ident, :@tstring_content, :@kw node[2][0] end end