lib/tocer/transformers/text.rb in tocer-8.2.1 vs lib/tocer/transformers/text.rb in tocer-9.0.0
- old
+ new
@@ -6,36 +6,39 @@
module Transformers
# Transforms a Markdown header (plain text) into a table of contents link.
class Text
using Refinements::Arrays
- def initialize text, header: Parsers::Header
- @header = header.new text
+ def initialize text, parser: Parsers::Header
+ @parser = parser.new text
end
def label
- header.content
+ parser.content
end
def url
label.downcase.gsub(/\s/, "-").gsub(/[^\w\-]+/, "")
end
- def transform url_suffix: ""
- modified_url = [url, url_suffix.to_s].compress.join "-"
- "#{indented_bullet}[#{label}](##{modified_url})"
+ def call url_suffix: ""
+ "#{indented_bullet}[#{label}](##{computed_url url_suffix})"
end
private
- attr_reader :header
+ attr_reader :parser
- def prefix_to_spaces
- Array.new(header.prefix.length, " ").join
+ def computed_url suffix = ""
+ [url, suffix.to_s].compress.join "-"
end
def indented_bullet
prefix_to_spaces.gsub(/\s{2}$/, "- ")
+ end
+
+ def prefix_to_spaces
+ Array.new(parser.prefix.length, " ").join
end
end
end
end