Sha256: 8e72cf638ba12f69f3fb105b16ed4ab1dfec839b366ac8adb4107fb1e842f083

Contents?: true

Size: 945 Bytes

Versions: 15

Compression:

Stored size: 945 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:, initial: false, 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
          @initial = initial
        end

        def initial?
          !!@initial
        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

15 entries across 15 versions & 1 rubygems

Version Path
slack-ruby-block-kit-0.25.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.24.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.23.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.22.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.21.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.20.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.19.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.18.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.17.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.16.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.15.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.14.1 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.14.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.13.0 lib/slack/block_kit/composition/option.rb
slack-ruby-block-kit-0.12.0 lib/slack/block_kit/composition/option.rb