class Mdtoc::Markdown::Header

Public Class Methods

new(depth, label, url) click to toggle source
# File lib/mdtoc/markdown/header.rb, line 12
def initialize(depth, label, url)
  if depth < 0
    raise ArgumentError, "Header depth must be >= 0, but was #{depth}"
  end
  @depth = depth
  @label = normalize_label(label)
  @url = url
end

Public Instance Methods

to_s() click to toggle source
# File lib/mdtoc/markdown/header.rb, line 22
def to_s
  prefix = ' ' * 2 * @depth
  "#{prefix}* [#{@label}](#{@url})"
end
top_level?(relative_to_depth) click to toggle source
# File lib/mdtoc/markdown/header.rb, line 28
def top_level?(relative_to_depth)
  @depth == relative_to_depth
end

Private Instance Methods

normalize_label(label) click to toggle source
# File lib/mdtoc/markdown/header.rb, line 34
def normalize_label(label)
  label = label.strip.tr("\t\n\r", '') # Remove whitespace characters other than spaces.
  label.gsub(/\[(.*)\]\(.*\)/, '\1') # Remove links
end