class Herb::AST::ERBEnsureNode

def initialize(type, location, errors, tag_opening, content, tag_closing, statements)

def initialize(type, location, errors, tag_opening, content, tag_closing, statements)
  super(type, location, errors)
  @tag_opening = tag_opening
  @content = content
  @tag_closing = tag_closing
  @statements = statements
end

def inspect

def inspect
  tree_inspect.rstrip.gsub(/\s+$/, "")
end

def to_hash

def to_hash
  super.merge({
    tag_opening: tag_opening,
    content: content,
    tag_closing: tag_closing,
    statements: statements,
  })
end

def tree_inspect(indent = 0)

def tree_inspect(indent = 0)
  output = +""
  output += "@ #{node_name} "
  output += location.tree_inspect
  output += "\n"
  output += inspect_errors(prefix: "│   ")
  output += "├── tag_opening: "
  output += tag_opening ? tag_opening.tree_inspect : "∅"
  output += "\n"
  output += "├── content: "
  output += content ? content.tree_inspect : "∅"
  output += "\n"
  output += "├── tag_closing: "
  output += tag_closing ? tag_closing.tree_inspect : "∅"
  output += "\n"
  output += "└── statements: "
  output += inspect_array(statements, prefix: "    ")
  output += "\n"
  output.gsub(/^/, "    " * indent)
end