class CommandHandler::Command

Attributes

props[R]
run[R]

Public Class Methods

new(props, &run) click to toggle source
# File lib/advanced_ruby_command_handler/app/command.rb, line 7
def initialize(props, &run)
  @props = load_proprieties(props)
  @run = run
end

Private Instance Methods

load_proprieties(props) click to toggle source
# File lib/advanced_ruby_command_handler/app/command.rb, line 12
def load_proprieties(props)
  return props unless props.instance_of?(Hash)

  props[:aliases] ||= nil
  props[:description] ||= nil
  props[:args] ||= nil
  props[:strict_args] ||= false
  props[:use_example] ||= nil
  props[:category] ||= nil
  props[:user_permissions] ||= []
  props[:client_permissions] ||= []
  if props[:client_permissions].instance_of?(Array) && props[:client_permissions].empty?
    props[:client_permissions].push(
      :add_reactions,
      :send_messages,
      :embed_links,
      :attach_files,
      :use_external_emoji
    )
  elsif props[:client_permissions] == :default
    props[:client_permissions] = %i[
      add_reactions
      send_messages
      embed_links
      attach_files
      use_external_emoji
    ]
  end

  Hash[
    :name => props[:name],
    :aliases => props[:aliases],
    :description => props[:description],
    :args => props[:args],
    :strict_args => props[:strict_args],
    :use_example => props[:use_example],
    :category => props[:category],
    :user_permissions => props[:user_permissions],
    :client_permissions => props[:client_permissions]
  ]
end