class Slack::BlockKit::Element::StaticSelectElement

Attributes

initial_option[R]
option_groups[R]
options[R]

Public Class Methods

new() click to toggle source
# File lib/slack/block_kit/element/static_select_element.rb, line 18
def initialize
  @options = TypeRestrictedArray.new(CompositionObjects::Option)
  @option_groups = TypeRestrictedArray.new(CompositionObjects::OptionGroup)
end
populate(hash, object) click to toggle source
# File lib/slack/block_kit/element/static_select_element.rb, line 10
def self.populate(hash, object)
  hash[:options].each(&object.options.method(:<<)) if hash.key?(:options)
  hash[:option_groups].each(&object.option_groups.method(:<<)) if hash.key?(:option_groups)
  object.initial_option = hash[:initial_option] if hash.key?(:initial_option)

  super(hash, object)
end

Public Instance Methods

initial_option=(obj) click to toggle source
# File lib/slack/block_kit/element/static_select_element.rb, line 30
def initial_option=(obj)
  raise TypeError, 'text must be a Option Object' unless obj.is_a?(CompositionObjects::Option)

  @initial_option = obj
end
to_h() click to toggle source
# File lib/slack/block_kit/element/static_select_element.rb, line 36
def to_h
  super.merge(
    options: options.map(&:to_h),
    option_groups: option_groups.map(&:to_h),
    initial_option: initial_option&.to_h
  ).compact
end
valid?() click to toggle source

Either options or option_groups must exist and be non-empty.

# File lib/slack/block_kit/element/static_select_element.rb, line 24
def valid?
  if @options.nil? || @options.empty? then !@option_groups.empty?
  else !@options&.empty?
  end
end