From f39ab1c47a24d1ddd0b39817c64b75d7da075100 Mon Sep 17 00:00:00 2001 From: Daniel Danopia Date: Sun, 31 Jan 2010 15:26:28 -0500 Subject: [PATCH] Let commands take unlimited params --- bot.rb | 4 +++- bots/groupserv.rb | 18 ++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/bot.rb b/bot.rb index e25da17..800624e 100644 --- a/bot.rb +++ b/bot.rb @@ -15,6 +15,8 @@ def self.command names, description, *params, &blck :min_params => min_params } + data[:unlimited] = params.pop if params.last == true + names = [names] if names.is_a? String @@commands[self][names.first.upcase] = data @@ -60,7 +62,7 @@ def on_priv_message from, bot, to, message notice from, "Insufficient parameters for ^B#{command}^B." notice from, "Syntax: #{command} <#{info[:params].join '> <'}>" else - params.pop until params.size <= info[:params].size + params.pop until params.size <= info[:params].size unless info[:unlimited] send "cmd_#{(@@commands[self.class][command.upcase][:alias_of] || command).downcase}", from, *params end diff --git a/bots/groupserv.rb b/bots/groupserv.rb index a3acc61..f48175c 100644 --- a/bots/groupserv.rb +++ b/bots/groupserv.rb @@ -1,7 +1,7 @@ module BitServ class GroupServ < ServicesBot command 'list', 'List all registered groups.' - command 'roles', 'Manage the roles for a certain group.', 'group' + command 'roles', 'Manage the roles for a certain group.', 1, 'group', 'action', true def cmd_list origin notice origin, "*** List of Registered Groups ***" @@ -11,12 +11,18 @@ def cmd_list origin notice origin, "*** End Group List ***" end - def cmd_roles origin, group - notice origin, "*** Group Roles List for #{group} ***" - Group.load(group).roles.each do |role| - notice origin, "#{role.name.ljust 16}| (#{role.members.size}) #{role.desc}" + def cmd_roles origin, group, action='list', *args + LDAP.user_bind origin.nick, password + + case action + when 'list' + notice origin, "*** Group Roles List for #{group} ***" + Group.load(group).roles.each do |role| + notice origin, "#{role.name.ljust 16}| (#{role.members.size}) #{role.desc}" + end + notice origin, "*** End Role List ***" + end - notice origin, "*** End Role List ***" end end end