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:, style: nil, 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
155 156 157 158 159 |
# File 'lib/slack/block_kit/layout/section.rb', line 155 def accessorise(element) @accessory = element self end |
#as_json ⇒ Object
161 162 163 164 165 166 167 168 169 |
# File 'lib/slack/block_kit/layout/section.rb', line 161 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:, style: nil, emoji: nil, url: nil, value: nil) {|element| ... } ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/slack/block_kit/layout/section.rb', line 50 def (text:, action_id:, style: nil, emoji: nil, url: nil, value: nil) element = Element::Button.new( text: text, action_id: action_id, style: style, 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
65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/slack/block_kit/layout/section.rb', line 65 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
78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/slack/block_kit/layout/section.rb', line 78 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
91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/slack/block_kit/layout/section.rb', line 91 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
104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/slack/block_kit/layout/section.rb', line 104 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
151 152 153 |
# File 'lib/slack/block_kit/layout/section.rb', line 151 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
118 119 120 121 122 123 124 |
# File 'lib/slack/block_kit/layout/section.rb', line 118 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
126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/slack/block_kit/layout/section.rb', line 126 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
138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/slack/block_kit/layout/section.rb', line 138 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 |