# License:: GPL v2
class DebugPlugin < Plugin
- BotConfig.register BotConfigIntegerValue.new('debug.interval',
+ Config.register Config::IntegerValue.new('debug.interval',
:default => 10, :validate => Proc.new{|v| v > 0},
:desc => "Number of seconds between memory profile dumps")
- BotConfig.register BotConfigBooleanValue.new('debug.dump_strings',
+ Config.register Config::BooleanValue.new('debug.dump_strings',
:default => false,
:desc => "Set to true if you want the profiler to dump strings, false otherwise")
- BotConfig.register BotConfigStringValue.new('debug.logdir',
+ Config.register Config::StringValue.new('debug.logdir',
:default => "",
:desc => "Directory where profile/string dumps are to be stored")
+ def dirname
+ @bot.config['debug.logdir']
+ end
+
def initialize
super
@prev = Hash.new(0)
@curr = Hash.new(0)
@delta = Hash.new(0)
- @file = File.open("#{@bot.botclass}/#{@bot.config['debug.logdir']}/memory_profiler.log",'w')
+ @file = File.open(datafile("memory_profiler.log"), 'w')
@thread = @bot.timer.add(@bot.config['debug.interval']) {
begin
GC.start
end
if @bot.config['debug.dump_strings']
- File.open("#{@bot.botclass}/#{@bot.config['debug.logdir']}/memory_profiler_strings.log.#{Time.now.to_i}",'w') do |f|
+ File.open(datafile("memory_profiler_strings.log.#{Time.now.to_i}"), 'w') do |f|
curr_strings.sort.each do |s|
f.puts s
end
end
end
- File.open("#{@bot.botclass}/#{@bot.config['debug.logdir']}/memory_profiler_strings.log.#{Time.now.to_i}",'w') do |f|
+ File.open(datafile("memory_profiler_strings.log.#{Time.now.to_i}"), 'w') do |f|
curr_strings.sort.each do |s|
f.puts s
end