Class: Slack::BlockKit::Layout::Section
- Inherits:
-
Object
- Object
- Slack::BlockKit::Layout::Section
- Defined in:
- lib/slack/block_kit/layout/section.rb
Overview
A section is one of the most flexible blocks available - it can be used as a simple text block, in combination with text fields, or side-by-side with any of the available block elements.
Constant Summary collapse
- TYPE =
'section'
Instance Attribute Summary collapse
-
#accessory ⇒ Object
Returns the value of attribute accessory.
-
#fields ⇒ Object
Returns the value of attribute fields.
-
#text ⇒ Object
Returns the value of attribute text.
Instance Method Summary collapse
- #accessorise(element) ⇒ Object
- #as_json ⇒ Object
- #button(text:, action_id:, emoji: nil, url: nil, value: nil) {|element| ... } ⇒ Object
- #channel_select(placeholder:, action_id:, initial: nil, emoji: nil) {|element| ... } ⇒ Object
- #conversation_select(placeholder:, action_id:, initial: nil, emoji: nil) {|element| ... } ⇒ Object
- #date_picker(action_id:, placeholder: nil, initial: nil, emoji: nil) {|element| ... } ⇒ Object
- #external_select(placeholder:, action_id:, initial: nil, min_query_length: nil, emoji: nil) {|element| ... } ⇒ Object
- #image(url:, alt_text:) ⇒ Object
-
#initialize(block_id: nil) {|_self| ... } ⇒ Section
constructor
A new instance of Section.
- #mrkdwn(text:, verbatim: nil) ⇒ Object
- #mrkdwn_field(text:, verbatim: nil) ⇒ Object
- #overflow_menu(action_id:) {|element| ... } ⇒ Object
- #plain_text(text:, emoji: nil) ⇒ Object
- #plaintext_field(text:, emoji: nil) ⇒ Object
- #static_select(placeholder:, action_id:, emoji: nil) {|element| ... } ⇒ Object
- #users_select(placeholder:, action_id:, initial: nil, emoji: nil) {|element| ... } ⇒ Object
Constructor Details
#initialize(block_id: nil) {|_self| ... } ⇒ Section
Returns a new instance of Section.
16 17 18 19 20 |
# File 'lib/slack/block_kit/layout/section.rb', line 16 def initialize(block_id: nil) @block_id = block_id yield(self) if block_given? end |
Instance Attribute Details
#accessory ⇒ Object
Returns the value of attribute accessory.
14 15 16 |
# File 'lib/slack/block_kit/layout/section.rb', line 14 def accessory @accessory end |
#fields ⇒ Object
Returns the value of attribute fields.
14 15 16 |
# File 'lib/slack/block_kit/layout/section.rb', line 14 def fields @fields end |
#text ⇒ Object
Returns the value of attribute text.
14 15 16 |
# File 'lib/slack/block_kit/layout/section.rb', line 14 def text @text end |
Instance Method Details
#accessorise(element) ⇒ Object
154 155 156 157 158 |
# File 'lib/slack/block_kit/layout/section.rb', line 154 def accessorise(element) @accessory = element self end |
#as_json ⇒ Object
160 161 162 163 164 165 166 167 168 |
# File 'lib/slack/block_kit/layout/section.rb', line 160 def as_json(*) { type: TYPE, text: @text.as_json, block_id: @block_id, fields: @fields&.map(&:as_json), accessory: @accessory&.as_json }.compact end |
#button(text:, action_id:, emoji: nil, url: nil, value: nil) {|element| ... } ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/slack/block_kit/layout/section.rb', line 50 def (text:, action_id:, emoji: nil, url: nil, value: nil) element = Element::Button.new( text: text, action_id: action_id, emoji: emoji, url: url, value: value ) yield(element) if block_given? accessorise(element) end |
#channel_select(placeholder:, action_id:, initial: nil, emoji: nil) {|element| ... } ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/slack/block_kit/layout/section.rb', line 64 def channel_select(placeholder:, action_id:, initial: nil, emoji: nil) element = Element::ChannelsSelect.new( placeholder: placeholder, action_id: action_id, initial: initial, emoji: emoji ) yield(element) if block_given? accessorise(element) end |
#conversation_select(placeholder:, action_id:, initial: nil, emoji: nil) {|element| ... } ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/slack/block_kit/layout/section.rb', line 77 def conversation_select(placeholder:, action_id:, initial: nil, emoji: nil) element = Element::ConversationsSelect.new( placeholder: placeholder, action_id: action_id, initial: initial, emoji: emoji ) yield(element) if block_given? accessorise(element) end |
#date_picker(action_id:, placeholder: nil, initial: nil, emoji: nil) {|element| ... } ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/slack/block_kit/layout/section.rb', line 90 def date_picker(action_id:, placeholder: nil, initial: nil, emoji: nil) element = Element::DatePicker.new( placeholder: placeholder, action_id: action_id, initial: initial, emoji: emoji ) yield(element) if block_given? accessorise(element) end |
#external_select(placeholder:, action_id:, initial: nil, min_query_length: nil, emoji: nil) {|element| ... } ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/slack/block_kit/layout/section.rb', line 103 def external_select(placeholder:, action_id:, initial: nil, min_query_length: nil, emoji: nil) element = Element::ExternalSelect.new( placeholder: placeholder, action_id: action_id, initial: initial, min_query_length: min_query_length, emoji: emoji ) yield(element) if block_given? accessorise(element) end |
#image(url:, alt_text:) ⇒ Object
150 151 152 |
# File 'lib/slack/block_kit/layout/section.rb', line 150 def image(url:, alt_text:) accessorize(Element::Image.new(image_url: url, alt_text: alt_text)) end |
#mrkdwn(text:, verbatim: nil) ⇒ Object
44 45 46 47 48 |
# File 'lib/slack/block_kit/layout/section.rb', line 44 def mrkdwn(text:, verbatim: nil) @text = Composition::Mrkdwn.new(text: text, verbatim: verbatim) self end |
#mrkdwn_field(text:, verbatim: nil) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/slack/block_kit/layout/section.rb', line 30 def mrkdwn_field(text:, verbatim: nil) @fields ||= [] @fields << Composition::Mrkdwn.new(text: text, verbatim: verbatim) self end |
#overflow_menu(action_id:) {|element| ... } ⇒ Object
117 118 119 120 121 122 123 |
# File 'lib/slack/block_kit/layout/section.rb', line 117 def (action_id:) element = Element::OverflowMenu.new(action_id: action_id) yield(element) if block_given? accessorise(element) end |
#plain_text(text:, emoji: nil) ⇒ Object
38 39 40 41 42 |
# File 'lib/slack/block_kit/layout/section.rb', line 38 def plain_text(text:, emoji: nil) @text = Composition::PlainText.new(text: text, emoji: emoji) self end |
#plaintext_field(text:, emoji: nil) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/slack/block_kit/layout/section.rb', line 22 def plaintext_field(text:, emoji: nil) @fields ||= [] @fields << Composition::PlainText.new(text: text, emoji: emoji) self end |
#static_select(placeholder:, action_id:, emoji: nil) {|element| ... } ⇒ Object
125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/slack/block_kit/layout/section.rb', line 125 def static_select(placeholder:, action_id:, emoji: nil) element = Element::StaticSelect.new( placeholder: placeholder, action_id: action_id, emoji: emoji ) yield(element) if block_given? accessorise(element) end |
#users_select(placeholder:, action_id:, initial: nil, emoji: nil) {|element| ... } ⇒ Object
137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/slack/block_kit/layout/section.rb', line 137 def users_select(placeholder:, action_id:, initial: nil, emoji: nil) element = Element::UsersSelect.new( placeholder: placeholder, action_id: action_id, emoji: emoji, initial: initial ) yield(element) if block_given? accessorise(element) end |