An Irc::Bot::Auth::Command defines a command by its “path”:
base::command::subcommand::subsubcommand::subsubsubcommand
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
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(/^\*?(?:::)?/,"").gsub(/::$/,"") return pre if pre.empty? return pre if pre =~ /^\S+(::\S+)*$/ raise TypeError, "#{cmd.inspect} is not a valid command" end
Returs self
# File lib/rbot/botuser.rb, line 104 def to_irc_auth_command self end