Class: Kitchen::Directions::BakeNumberedTable::V2

Inherits:
Object
  • Object
show all
Defined in:
lib/kitchen/directions/bake_numbered_table/v2.rb

Overview

Difference from v1: only in the caption V2 caption titles are nested within an .os-caption span

Instance Method Summary collapse

Instance Method Details

#bake(table:, number:, cases: false, label_class: nil) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/kitchen/directions/bake_numbered_table/v2.rb', line 8

def bake(table:, number:, cases: false, label_class: nil)
  Kitchen::Directions::BakeTableBody::V1.new.bake(table: table,
                                                  number: number,
                                                  cases: cases,
                                                  label_class: label_class)

  caption = ''
  if (table&.caption&.first("span[data-type='title']") || table&.caption) \
    && !table.top_captioned?
    caption_el = table.caption
    caption_el.add_class('os-caption')
    caption_el.name = 'span'
    caption = caption_el.cut
  end

  table.append(sibling:
    <<~HTML
      <div class="os-caption-container">
        <span class="os-title-label">#{I18n.t("table#{'.nominative' if cases}")} </span>
        <span class="os-number">#{number}</span>
        <span class="os-divider"> </span>
        #{caption}
      </div>
    HTML
  )

  table.parent.add_class('os-timeline-table-container') if table.has_class?('timeline-table')

  return unless table.baked_caption

  Kitchen::Directions::BakeAsideInCaption.v1(
    caption_container: table.baked_caption
  )
end