class Slack::BlockKit::Composition::OptionGroup

Provides a way to group options in a select menu.

api.slack.com/reference/messaging/composition-objects#option-group api.slack.com/reference/messaging/block-elements#select

Attributes

options[RW]

Public Class Methods

new(label:, emoji: nil) { |self| ... } click to toggle source
# File lib/slack/block_kit/composition/option_group.rb, line 13
def initialize(label:, emoji: nil)
  @label = PlainText.new(text: label, emoji: emoji)
  @options = []

  yield(self) if block_given?
end

Public Instance Methods

as_json(*) click to toggle source
# File lib/slack/block_kit/composition/option_group.rb, line 26
def as_json(*)
  {
    label: @label.as_json,
    options: @options.map(&:as_json)
  }
end
option(text:, value:, emoji: nil, initial: false) click to toggle source
# File lib/slack/block_kit/composition/option_group.rb, line 20
def option(text:, value:, emoji: nil, initial: false)
  @options << Option.new(text: text, value: value, emoji: emoji, initial: initial)

  self
end