class Slack::BlockKit::Blocks

Blocks are a series of components that can be combined to create visually rich and compellingly interactive messages.

api.slack.com/reference/messaging/blocks

Attributes

blocks[RW]

Public Class Methods

new() { |self| ... } click to toggle source
# File lib/slack/block_kit/blocks.rb, line 12
def initialize
  @blocks = []

  yield(self) if block_given?
end

Public Instance Methods

actions(block_id: nil) { |block| ... } click to toggle source
# File lib/slack/block_kit/blocks.rb, line 18
def actions(block_id: nil)
  block = Layout::Actions.new(block_id: block_id)

  yield(block) if block_given?

  append(block)
end
append(block) click to toggle source
# File lib/slack/block_kit/blocks.rb, line 60
def append(block)
  @blocks << block

  self
end
as_json(*) click to toggle source
# File lib/slack/block_kit/blocks.rb, line 66
def as_json(*)
  @blocks.map(&:as_json)
end
context(block_id: nil) { |block| ... } click to toggle source
# File lib/slack/block_kit/blocks.rb, line 26
def context(block_id: nil)
  block = Layout::Context.new(block_id: block_id)

  yield(block) if block_given?

  append(block)
end
divider(block_id: nil) click to toggle source
# File lib/slack/block_kit/blocks.rb, line 34
def divider(block_id: nil)
  block = Layout::Divider.new(block_id: block_id)

  append(block)
end
image(url:, alt_text:, title: nil, block_id: nil, emoji: nil) click to toggle source
# File lib/slack/block_kit/blocks.rb, line 40
def image(url:, alt_text:, title: nil, block_id: nil, emoji: nil)
  block = Layout::Image.new(
    url: url,
    alt_text: alt_text,
    title: title,
    block_id: block_id,
    emoji: emoji
  )

  append(block)
end
section(block_id: nil) { |block| ... } click to toggle source
# File lib/slack/block_kit/blocks.rb, line 52
def section(block_id: nil)
  block = Layout::Section.new(block_id: block_id)

  yield(block) if block_given?

  append(block)
end