class Tocer::Transformers::Text

Transforms a Markdown header (plain text) into a table of contents link.

def call(url_suffix: "") = "#{indented_bullet}[#{label}](##{computed_url url_suffix})"

def call(url_suffix: "") = "#{indented_bullet}[#{label}](##{computed_url url_suffix})"

def computed_url(suffix = Core::EMPTY_STRING) = [url, suffix.to_s].compress.join("-")

def computed_url(suffix = Core::EMPTY_STRING) = [url, suffix.to_s].compress.join("-")

def indented_bullet = prefix_to_spaces.gsub(/\s{2}$/, "- ")

def indented_bullet = prefix_to_spaces.gsub(/\s{2}$/, "- ")

def initialize text, parser: Parsers::Header

def initialize text, parser: Parsers::Header
  @parser = parser.new text
end

def label = parser.content

def label = parser.content

def prefix_to_spaces = Array.new(parser.prefix.length, " ").join

def prefix_to_spaces = Array.new(parser.prefix.length, "  ").join

def url = label.downcase.gsub(/\s/, "-").gsub(/[^\w-]+/, "")

def url = label.downcase.gsub(/\s/, "-").gsub(/[^\w-]+/, "")