Class: BlockKit::Surfaces::Message
- Defined in:
- lib/block_kit/surfaces/message.rb
Constant Summary collapse
- MAX_BLOCKS =
50- SUPPORTED_ELEMENTS =
[ Elements::Button, Elements::ChannelsSelect, Elements::Checkboxes, Elements::ConversationsSelect, Elements::DatePicker, Elements::DatetimePicker, Elements::ExternalSelect, Elements::Image, Elements::MultiChannelsSelect, Elements::MultiConversationsSelect, Elements::MultiExternalSelect, Elements::MultiStaticSelect, Elements::MultiUsersSelect, Elements::Overflow, Elements::PlainTextInput, Elements::RadioButtons, Elements::StaticSelect, Elements::TimePicker, Elements::UsersSelect, Elements::WorkflowButton ].freeze
Instance Method Summary collapse
-
#append(block) ⇒ Object
Overridden to return ‘self`, allowing chaining.
- #as_json ⇒ Object
- #image(alt_text:, image_url: nil, slack_file: nil, title: nil, emoji: nil, block_id: nil) ⇒ Object
Methods inherited from Base
#==, fix, #fix_validation_errors, #fix_validation_errors!, fixes, inherited, #initialize, inspect, #inspect, #pretty_print, #to_json
Constructor Details
This class inherits a constructor from BlockKit::Base
Instance Method Details
#append(block) ⇒ Object
Overridden to return ‘self`, allowing chaining.
65 66 67 68 69 |
# File 'lib/block_kit/surfaces/message.rb', line 65 def append(block) blocks << block self end |
#as_json ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/block_kit/surfaces/message.rb', line 71 def as_json(*) super().except(:type).merge( text: text, blocks: blocks&.map(&:as_json), thread_ts: thread_ts, mrkdwn: mrkdwn ).compact end |
#image(alt_text:, image_url: nil, slack_file: nil, title: nil, emoji: nil, block_id: nil) ⇒ Object
56 57 58 59 60 61 62 |
# File 'lib/block_kit/surfaces/message.rb', line 56 def image(alt_text:, image_url: nil, slack_file: nil, title: nil, emoji: nil, block_id: nil) if (image_url.nil? && slack_file.nil?) || (image_url && slack_file) raise ArgumentError, "Must provide either image_url or slack_file, but not both." end append(Layout::Image.new(image_url: image_url, slack_file: slack_file, alt_text: alt_text, title: title, block_id: block_id, emoji: emoji)) end |