class DocTemplate::Tags::CalloutTag

Constants

TAG_NAME
TEMPLATES

Public Instance Methods

parse_table(table) click to toggle source
# File lib/doc_template/tags/callout_tag.rb, line 12
def parse_table(table)
  header, content = fetch_content(table)
  params = {
    content: content,
    header: header,
    subject: @opts[:metadata].resource_subject
  }
  new_content = parse_template params, template_name(@opts)

  @opts[:parent_node] = new_content
  parsed_content = parse_nested new_content, @opts

  # Place placeholder where it should be
  before_tag(previous_non_empty(table) || table)

  # returns the generated content to be stored as part
  @content = parsed_content
  table.remove
end

Private Instance Methods

fetch_content(node) click to toggle source
# File lib/doc_template/tags/callout_tag.rb, line 34
def fetch_content(node)
  [node.at_xpath('.//tr[2]/td').try(:content) || '',
   node.at_xpath('.//tr[3]/td').try(:inner_html) || '']
end
previous_non_empty(node) click to toggle source
# File lib/doc_template/tags/callout_tag.rb, line 39
def previous_non_empty(node)
  while (node = node.previous_sibling)
    break unless node.content.squish.blank?
  end
  node
end