Class: SlackBot::SlashCommandConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/slack_bot/config.rb,
sig/slack_bot.rbs

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(command_klass:, token:, endpoint:, parent_configs: [], handler_name: nil) ⇒ SlashCommandConfig

Returns a new instance of SlashCommandConfig.

Parameters:



198
199
200
201
202
203
204
205
206
207
208
# File 'lib/slack_bot/config.rb', line 198

def initialize(command_klass:, token:, endpoint:, parent_configs: [], handler_name: nil)
  @command_klass = command_klass
  @token = token
  @parent_configs = parent_configs || []
  @endpoint = endpoint

  endpoint.routes[full_token] = self

  handler_name ||= command_klass.name
  endpoint.config.handler_class(handler_name, command_klass)
end

Instance Attribute Details

#command_klassClass

Returns the value of attribute command_klass.

Returns:

  • (Class)


197
198
199
# File 'lib/slack_bot/config.rb', line 197

def command_klass
  @command_klass
end

#endpointSlashCommandEndpointConfig

Returns the value of attribute endpoint.



197
198
199
# File 'lib/slack_bot/config.rb', line 197

def endpoint
  @endpoint
end

#parent_configsArray[SlashCommandConfig]

Returns the value of attribute parent_configs.

Returns:



197
198
199
# File 'lib/slack_bot/config.rb', line 197

def parent_configs
  @parent_configs
end

#tokenSymbol

Returns the value of attribute token.

Returns:

  • (Symbol)


197
198
199
# File 'lib/slack_bot/config.rb', line 197

def token
  @token
end

Class Method Details

.delimiterString

Returns:

  • (String)


193
194
195
# File 'lib/slack_bot/config.rb', line 193

def self.delimiter
  " "
end

Instance Method Details

#argument_command(argument_token, klass = nil) {|arg0| ... } ⇒ SlashCommandConfig

Parameters:

  • argument_token (Symbol)
  • klass (Class) (defaults to: nil)

Yields:

Yield Parameters:

Yield Returns:

  • (void)

Returns:



210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
# File 'lib/slack_bot/config.rb', line 210

def argument_command(argument_token, klass = nil, &)
  @argument_command_configs ||= {}
  @argument_command_configs[argument_token.to_sym] ||=
    SlashCommandConfig.new(
      command_klass: command_klass,
      token: argument_token,
      parent_configs: [self] + (parent_configs || []),
      endpoint: endpoint
    )

  command_config = @argument_command_configs[argument_token.to_sym]
  command_config.instance_eval(&) if block_given?

  command_config
end

#find_argument_command_config(argument_token) ⇒ SlashCommandConfig?

Parameters:

  • argument_token (Symbol)

Returns:



226
227
228
229
# File 'lib/slack_bot/config.rb', line 226

def find_argument_command_config(argument_token)
  @argument_command_configs ||= {}
  @argument_command_configs[argument_token.to_sym]
end

#full_tokenString

Returns:

  • (String)


231
232
233
234
235
# File 'lib/slack_bot/config.rb', line 231

def full_token
  [parent_configs.map(&:token), token].flatten.compact.join(
    self.class.delimiter
  )
end

#url_tokenSymbol

Returns:

  • (Symbol)


237
238
239
# File 'lib/slack_bot/config.rb', line 237

def url_token
  endpoint.url_token
end