class Bootstrap::ViewHelpers::Components::Accordion::Card

Attributes

id[R]

Public Instance Methods

body(_ = nil) { || ... } click to toggle source
# File lib/bootstrap/view_helpers/components/accordion/card.rb, line 13
def body(_ = nil, &_block)
  content_tag(:div, collapse_options) do
    content_tag(:div, class: body_class(options)) { yield }
  end
end
header(_ = nil, _ = {}) click to toggle source
# File lib/bootstrap/view_helpers/components/accordion/card.rb, line 6
def header(_ = nil, _ = {})
  content_tag(:div, class: "card-header p-0 #{options[:class]}",
              id: header_id) do
    title_tag(options[:title])
  end
end

Protected Instance Methods

accordion_item_id() click to toggle source
# File lib/bootstrap/view_helpers/components/accordion/card.rb, line 36
def accordion_item_id
  @id ||= options[:id] || "group_#{SecureRandom.urlsafe_base64}"
end
collapse_options() click to toggle source
# File lib/bootstrap/view_helpers/components/accordion/card.rb, line 40
def collapse_options
  { class: "collapse #{'show' if options[:expanded]}",
    id: accordion_item_id, data: { parent: "##{options[:parent]}" },
    aria: { labelled_by: header_id } }
end
header_id() click to toggle source
# File lib/bootstrap/view_helpers/components/accordion/card.rb, line 30
def header_id
  return @header_id if defined? @header_id
  random_id = "header_#{SecureRandom.urlsafe_base64}"
  @header_id = options[:header_id] || random_id
end
title_tag(title) click to toggle source
# File lib/bootstrap/view_helpers/components/accordion/card.rb, line 23
def title_tag(title)
  content_tag(:h5, class: header_options[:class]) do
    Button.new(view, { label: title, target: accordion_item_id,
                       expanded: options[:expanded] }).to_html
  end
end