Sha256: 827b3fe77332407ba98274542f79baa7229d852e350d83700245424332e6acfb
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
# frozen_string_literal: true module Slack module BlockKit class Element class MultiStaticSelectElement < StaticSelectElement using Refinements::HashCompact undef_method :initial_option= attr_reader :initial_options, :max_selected_items def self.populate(hash, object) hash[:initial_options].each(&object.initial_options.method(:<<)) if hash.key?(:initial_options) object.max_selected_items = hash[:max_selected_items] if hash.key?(:max_selected_items) super(hash, object) end def initialize super @initial_options = TypeRestrictedArray.new(CompositionObjects::Option) end def max_selected_items=(num) raise TypeError, 'max_selected_items must be an integer' unless num.respond_to?(:to_int) @max_selected_items = num.to_i end def to_h super.merge( initial_options: initial_options&.to_h, max_selected_items: max_selected_items || 1 ).compact end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
slack-block-kit-0.1.0 | lib/slack/block_kit/element/multi_static_select_element.rb |