Class: Tocer::Transformers::Link

Inherits:
Object
  • Object
show all
Defined in:
lib/tocer/transformers/link.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initialize(text, header: Parsers::Header) ⇒ Link

Returns a new instance of Link.



11
12
13
# File 'lib/tocer/transformers/link.rb', line 11

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

Instance Method Details

#labelObject



15
16
17
# File 'lib/tocer/transformers/link.rb', line 15

def label
  header.content.gsub(embedded_link, embedded_link_label)
end

#transform(url_suffix: "") ⇒ Object



23
24
25
26
# File 'lib/tocer/transformers/link.rb', line 23

def transform url_suffix: ""
  modified_url = [url, url_suffix.to_s].compress.join "-"
  "#{indented_bullet}[#{label}](##{modified_url})"
end

#urlObject



19
20
21
# File 'lib/tocer/transformers/link.rb', line 19

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