Class: SlackRubyBotAuthorization::Command

Inherits:
Object
  • Object
show all
Includes:
Utils
Defined in:
lib/slack_ruby_bot_authorization/command.rb

Overview

Store the command name and keep track of any denial handlers for this command.

Constant Summary

Constants included from Utils

Utils::EmptyDenialProc

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils

#extract_command, #extract_details, #extract_user, #normalize_string

Constructor Details

#initialize(name) ⇒ Command

Returns a new instance of Command.



9
10
11
12
13
# File 'lib/slack_ruby_bot_authorization/command.rb', line 9

def initialize(name)
  @name = normalize_string(name)
  @denial_handler = EmptyDenialProc
  @audit = CommandAudit.new(@name)
end

Instance Attribute Details

#denial_handlerObject (readonly)

Returns the value of attribute denial_handler.



7
8
9
# File 'lib/slack_ruby_bot_authorization/command.rb', line 7

def denial_handler
  @denial_handler
end

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/slack_ruby_bot_authorization/command.rb', line 7

def name
  @name
end

Instance Method Details

#add_denial_handler(aproc) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/slack_ruby_bot_authorization/command.rb', line 15

def add_denial_handler(aproc)
  unless aproc.arity == 3
    raise(DenialProcArityException, 'Must accept 3 arguments')
  end

  @denial_handler = aproc
end

#call_denial_handler(client, data, match) ⇒ Object



27
28
29
# File 'lib/slack_ruby_bot_authorization/command.rb', line 27

def call_denial_handler(client, data, match)
  @denial_handler.call(client, data, match)
end


43
44
45
# File 'lib/slack_ruby_bot_authorization/command.rb', line 43

def print_stats
  @audit.inspect
end

#record_allowance(user) ⇒ Object



31
32
33
# File 'lib/slack_ruby_bot_authorization/command.rb', line 31

def record_allowance(user)
  @audit.allow(user)
end

#record_denial(user) ⇒ Object



35
36
37
# File 'lib/slack_ruby_bot_authorization/command.rb', line 35

def record_denial(user)
  @audit.deny(user)
end

#remove_denial_handlerObject



23
24
25
# File 'lib/slack_ruby_bot_authorization/command.rb', line 23

def remove_denial_handler
  @denial_handler = Utils::EmptyDenialProc
end

#stats_for(user) ⇒ Object



39
40
41
# File 'lib/slack_ruby_bot_authorization/command.rb', line 39

def stats_for(user)
  @audit.stats_for(user)
end