class Tocer::Elements::CommentBlock

Represents a table of contents start and finish comment block.

def self.index lines, id

def self.index lines, id
  (lines.index { |line| line =~ /<!--.*#{Regexp.escape id}.*-->/ }).to_i
end

def comment(id, message) = "<!-- #{id}: #{message} -->"

def comment(id, message) = "<!-- #{id}: #{message} -->"

def comments = "#{start_tag}\n#{finish_tag}\n"

def comments = "#{start_tag}\n#{finish_tag}\n"

def empty?(lines) = (finish_index(lines) - start_index(lines)) == 1

def empty?(lines) = (finish_index(lines) - start_index(lines)) == 1

def finish_index(lines) = self.class.index(lines, finish_id)

def finish_index(lines) = self.class.index(lines, finish_id)

def finish_tag = comment(finish_id, message)

def finish_tag = comment(finish_id, message)

def initialize start_id: "Tocer[start]",

def initialize start_id: "Tocer[start]",
               finish_id: "Tocer[finish]",
               message: "Auto-generated, don't remove."
  @start_id = start_id
  @finish_id = finish_id
  @message = message
end

def prependable?(lines) = start_index(lines).zero? && finish_index(lines).zero?

def prependable?(lines) = start_index(lines).zero? && finish_index(lines).zero?

def start_index(lines) = self.class.index(lines, start_id)

def start_index(lines) = self.class.index(lines, start_id)

def start_tag = comment(start_id, message)

def start_tag = comment(start_id, message)