class Irc::Bot::Auth::Command

An Irc::Bot::Auth::Command defines a command by its “path”:

base::command::subcommand::subsubcommand::subsubsubcommand

Attributes

command[R]
path[R]

Public Class Methods

new(cmd) click to toggle source

Creates a new Command from a given string; you can then access the command as a symbol with the :command method and the whole path as :path

Command.new("core::auth::save").path => [:"*", :"core", :"core::auth", :"core::auth::save"]

Command.new("core::auth::save").command => :"core::auth::save"
# File lib/rbot/botuser.rb, line 91
def initialize(cmd)
  cmdpath = sanitize_command_path(cmd).split('::')
  seq = cmdpath.inject(["*"]) { |list, cmd|
    list << (list.length > 1 ? list.last + "::" : "") + cmd
  }
  @path = seq.map { |k|
    k.to_sym
  }
  @command = path.last
  debug "Created command #{@command.inspect} with path #{@path.pretty_inspect}"
end

Public Instance Methods

sanitize_command_path(cmd) click to toggle source

A method that checks if a given cmd is in a form that can be reduced into a canonical command path, and if so, returns it

# File lib/rbot/botuser.rb, line 76
def sanitize_command_path(cmd)
  pre = cmd.to_s.downcase.gsub(%r^\*?(?:::)?/,"").gsub(%r::$/,"")
  return pre if pre.empty?
  return pre if pre =~ %r^\S+(::\S+)*$/
  raise TypeError, "#{cmd.inspect} is not a valid command"
end
to_irc_auth_command() click to toggle source

Returs self

# File lib/rbot/botuser.rb, line 104
def to_irc_auth_command
  self
end