class Slack::BlockKit::Block

Attributes

block_id[R]

Public Class Methods

[](hash) click to toggle source
# File lib/slack/block_kit/block.rb, line 13
def self.[](hash)
  new.tap { |obj| populate(hash, obj) }
end
populate(hash, object) click to toggle source
# File lib/slack/block_kit/block.rb, line 8
def self.populate(hash, object)
  object.block_id = hash[:block_id] if hash.key?(:block_id)
  raise ArgumentError, "invalid #{name}" unless object.valid?
end

Public Instance Methods

block_id=(obj) click to toggle source
# File lib/slack/block_kit/block.rb, line 17
def block_id=(obj)
  raise TypeError, 'block_id must be a string' unless obj.respond_to?(:to_str)
  raise RangeError, 'block_id must be max 255 characters' unless obj.size <= 255

  @block_id = obj.to_s
end
to_h() click to toggle source
# File lib/slack/block_kit/block.rb, line 35
def to_h
  { type: type,
    block_id: block_id }
end
type() click to toggle source
# File lib/slack/block_kit/block.rb, line 24
def type
  @type ||= self.class.name
    .split('::')
    .last.chomp('Block')
    .gsub(/([a-z])([A-Z])/, '\1_\2').downcase
end
valid?() click to toggle source
# File lib/slack/block_kit/block.rb, line 31
def valid?
  true
end