Sha256: 0efd255659a95b5f87bbf4395f719d62e780313d2208f73ceec0344648e0a0a4

Contents?: true

Size: 845 Bytes

Versions: 5

Compression:

Stored size: 845 Bytes

Contents

# frozen_string_literal: true

module Slack
  module BlockKit
    module Composition
      # An object that represents a single selectable item in a select menu.
      #
      # https://api.slack.com/reference/messaging/composition-objects#option
      # https://api.slack.com/reference/messaging/block-elements#select
      class Option
        def initialize(value:, text:, emoji: nil, description: nil, url: nil)
          @text = PlainText.new(text: text, emoji: emoji)
          @value = value
          @description = description && PlainText.new(text: description, emoji: emoji)
          @url = url
        end

        def as_json(*)
          {
            text: @text.as_json,
            value: @value,
            description: @description&.as_json,
            url: @url
          }.compact
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
slack-ruby-block-kit-0.11.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.10.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.9.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.8.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.7.0 lib/slack/block_kit/composition/option.rb