class Tocer::Transformers::Text
Transforms a Markdown header (plain text) into a table of contents link.
Public Class Methods
new(text, parser: Parsers::Header)
click to toggle source
# File lib/tocer/transformers/text.rb, line 11 def initialize text, parser: Parsers::Header @parser = parser.new text end
Public Instance Methods
call(url_suffix: "")
click to toggle source
# File lib/tocer/transformers/text.rb, line 19 def call(url_suffix: "") = "#{indented_bullet}[#{label}](##{computed_url url_suffix})" private attr_reader :parser def computed_url(suffix = "") = [url, suffix.to_s].compress.join("-") def indented_bullet = prefix_to_spaces.gsub(/\s{2}$/, "- ") def prefix_to_spaces = Array.new(parser.prefix.length, " ").join end end
computed_url(suffix = "")
click to toggle source
# File lib/tocer/transformers/text.rb, line 25 def computed_url(suffix = "") = [url, suffix.to_s].compress.join("-") def indented_bullet = prefix_to_spaces.gsub(/\s{2}$/, "- ") def prefix_to_spaces = Array.new(parser.prefix.length, " ").join end end end
indented_bullet(= prefix_to_spaces.gsub(/\s{2}$/, "- "))
click to toggle source
# File lib/tocer/transformers/text.rb, line 27 def indented_bullet = prefix_to_spaces.gsub(/\s{2}$/, "- ") def prefix_to_spaces = Array.new(parser.prefix.length, " ").join end end
label(= parser.content)
click to toggle source
# File lib/tocer/transformers/text.rb, line 15 def label = parser.content def url = label.downcase.gsub(/\s/, "-").gsub(/[^\w\-]+/, "") def call(url_suffix: "") = "#{indented_bullet}[#{label}](##{computed_url url_suffix})" private attr_reader :parser def computed_url(suffix = "") = [url, suffix.to_s].compress.join("-") def indented_bullet = prefix_to_spaces.gsub(/\s{2}$/, "- ") def prefix_to_spaces = Array.new(parser.prefix.length, " ").join
prefix_to_spaces(= Array.new(parser.prefix.length, " ").join)
click to toggle source
# File lib/tocer/transformers/text.rb, line 29 def prefix_to_spaces = Array.new(parser.prefix.length, " ").join end
url(= label.downcase.gsub(/\s/, "-").gsub(/[^\w\-]+/, ""))
click to toggle source
# File lib/tocer/transformers/text.rb, line 17 def url = label.downcase.gsub(/\s/, "-").gsub(/[^\w\-]+/, "") def call(url_suffix: "") = "#{indented_bullet}[#{label}](##{computed_url url_suffix})" private attr_reader :parser def computed_url(suffix = "") = [url, suffix.to_s].compress.join("-") def indented_bullet = prefix_to_spaces.gsub(/\s{2}$/, "- ") def prefix_to_spaces = Array.new(parser.prefix.length, " ").join end