aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'bugzilla.rb')
-rw-r--r--bugzilla.rb29
1 files changed, 16 insertions, 13 deletions
diff --git a/bugzilla.rb b/bugzilla.rb
index 7a82e9d..59ddff3 100644
--- a/bugzilla.rb
+++ b/bugzilla.rb
@@ -190,12 +190,17 @@ class BugzillaPlugin < Plugin
@registry["zilla.#{name}.lastseenid"] = val
end
- def create(name, baseurl, registry)
- raise EInvalidInstance("", "Missing instance name") unless name
- raise EInvalidInstance("", "Missing instance base URL") unless baseurl
+ def initialize(registry, bot)
raise EInvalidInstance("", "Missing registry instance") unless registry
+ raise EInvalidInstance("", "Missing bot instance") unless bot
@registry = registry
+ @bot = bot
+ end
+
+ def create(name, baseurl)
+ raise EInvalidInstance("", "Missing instance name") unless name
+ raise EInvalidInstance("", "Missing instance base URL") unless baseurl
@name = name
self.baseurl = baseurl
@@ -212,11 +217,9 @@ class BugzillaPlugin < Plugin
end
end
- def load(name, registry)
+ def load(name)
raise EInvalidInstance("", "Missing instance name") unless name
- raise EInvalidInstance("", "Missing registry instance") unless registry
- @registry = registry
@name = name
end
@@ -343,7 +346,7 @@ class BugzillaPlugin < Plugin
@registry["zilla.#{@name}.announcements"] = @registry["zilla.#{@name}.announcements"] - [channel_name]
end
- def announce(bot)
+ def announce
buglist_url = baseurl +
"/buglist.cgi?ctype=csv&order=bugs.bug_id"
@@ -360,7 +363,7 @@ class BugzillaPlugin < Plugin
bugsummary = summary(bug[0])
@registry["zilla.#{@name}.announcements"].each do |chan|
- bot.say chan, "New bug: #{bugsummary}"
+ @bot.say chan, "New bug: #{bugsummary}"
end
end
@@ -384,8 +387,8 @@ class BugzillaPlugin < Plugin
if @registry["zillas"]
@registry["zillas"].each do |zilla|
- instance = BugzillaInstance.new
- instance.load(zilla, @registry)
+ instance = BugzillaInstance.new(@registry, @bot)
+ instance.load(zilla)
@zillas[zilla] = instance
end
else
@@ -548,8 +551,8 @@ class BugzillaPlugin < Plugin
return
end
- instance = BugzillaInstance.new
- instance.create(params[:zilla], params[:baseurl], @registry)
+ instance = BugzillaInstance.new(@registry, @bot)
+ instance.create(params[:zilla], params[:baseurl])
@zillas[params[:zilla]] = instance
m.reply "Added #{params[:zilla]}"
@@ -694,7 +697,7 @@ class BugzillaPlugin < Plugin
def poll_zillas
@zillas.each do |name, zilla|
- zilla.announce(@bot)
+ zilla.announce
end
end