module SlackRubyBot::Hooks::HookSupport

Public Class Methods

included(base) click to toggle source
# File lib/slack-ruby-bot/hooks/hook_support.rb, line 6
def self.included(base)
  base.cattr_accessor :hook_blocks

  base.extend(ClassMethods)
end

Public Instance Methods

add_hook_handlers(handler_hash) click to toggle source

TODO: This should be deprecated in favor of `on`

# File lib/slack-ruby-bot/hooks/hook_support.rb, line 32
def add_hook_handlers(handler_hash)
  handler_hash.each do |hook, handlers|
    Array(handlers).each { |handler| on(hook, handler) }
  end
end
flush_hook_blocks() click to toggle source
# File lib/slack-ruby-bot/hooks/hook_support.rb, line 25
def flush_hook_blocks
  return nil unless self.class.hook_blocks

  add_hook_handlers(self.class.hook_blocks)
end
on(event_name, handler) click to toggle source
# File lib/slack-ruby-bot/hooks/hook_support.rb, line 21
def on(event_name, handler)
  _hooks.add(event_name, handler)
end

Private Instance Methods

_hooks() click to toggle source

Temp use this method in order to deprecate `hooks` and revisit

# File lib/slack-ruby-bot/hooks/hook_support.rb, line 39
def _hooks
  @hooks ||= SlackRubyBot::Hooks::Set.new
end