Class: Slack::BlockKit::Element

Inherits:
Object
  • Object
show all
Defined in:
lib/slack/block_kit/element.rb,
lib/slack/block_kit/element/image_element.rb,
lib/slack/block_kit/element/button_element.rb,
lib/slack/block_kit/element/select_element.rb,
lib/slack/block_kit/element/overflow_element.rb,
lib/slack/block_kit/element/date_picker_element.rb,
lib/slack/block_kit/element/users_select_element.rb,
lib/slack/block_kit/element/static_select_element.rb,
lib/slack/block_kit/element/channels_select_element.rb,
lib/slack/block_kit/element/external_select_element.rb,
lib/slack/block_kit/element/multi_users_select_element.rb,
lib/slack/block_kit/element/multi_static_select_element.rb,
lib/slack/block_kit/element/conversations_select_element.rb,
lib/slack/block_kit/element/multi_channels_select_element.rb,
lib/slack/block_kit/element/multi_external_select_element.rb,
lib/slack/block_kit/element/multi_conversations_select_element.rb

Defined Under Namespace

Classes: ButtonElement, ChannelsSelectElement, ConversationsSelectElement, DatePickerElement, ExternalSelectElement, ImageElement, MultiChannelsSelectElement, MultiConversationsSelectElement, MultiExternalSelectElement, MultiStaticSelectElement, MultiUsersSelectElement, OverflowElement, SelectElement, StaticSelectElement, UsersSelectElement

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#action_idObject

Returns the value of attribute action_id.



6
7
8
# File 'lib/slack/block_kit/element.rb', line 6

def action_id
  @action_id
end

Class Method Details

.[](hash) ⇒ Object



13
14
15
# File 'lib/slack/block_kit/element.rb', line 13

def self.[](hash)
  new.tap { |obj| populate(hash, obj) }
end

.populate(hash, object) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
# File 'lib/slack/block_kit/element.rb', line 8

def self.populate(hash, object)
  object.action_id = hash[:action_id] if hash.key?(:action_id)
  raise ArgumentError, "invalid #{name}" unless object.valid?
end

Instance Method Details

#to_hObject



35
36
37
38
# File 'lib/slack/block_kit/element.rb', line 35

def to_h
  { type: type,
    action_id: action_id }
end

#typeObject



24
25
26
27
28
29
# File 'lib/slack/block_kit/element.rb', line 24

def type
  @type ||= self.class.name
    .split('::')
    .last.chomp('Element')
    .gsub(/([a-z])([A-Z])/, '\1_\2').downcase
end

#valid?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/slack/block_kit/element.rb', line 31

def valid?
  true
end