From dcc2a88cb8529d7e393f1b96e84f6c94a864e4f9 Mon Sep 17 00:00:00 2001
From: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Mon, 5 Feb 2007 11:42:20 +0000
Subject: azgame plugin: move az rules into the plugin initialization

---
 data/rbot/plugins/azgame.rb | 51 +++++++++++++++++++++++----------------------
 1 file changed, 26 insertions(+), 25 deletions(-)

(limited to 'data/rbot/plugins')

diff --git a/data/rbot/plugins/azgame.rb b/data/rbot/plugins/azgame.rb
index c1ad3ea5..6f55a0ad 100644
--- a/data/rbot/plugins/azgame.rb
+++ b/data/rbot/plugins/azgame.rb
@@ -7,32 +7,16 @@
 #
 # TODO allow manual addition of words
 
-AZ_RULES = {
-  :italian => {
-    :good => /s\.f\.|s\.m\.|agg\.|v\.tr\.|v\.(pronom\.)?intr\./, # avv\.|pron\.|cong\.
-    :bad => /var\./,
-    :first => 'abaco',
-    :last => 'zuzzurellone',
-    :url => "http://www.demauroparavia.it/%s",
-    :wapurl => "http://wap.demauroparavia.it/index.php?lemma=%s"
-  },
-  :english => {
-    :good => /(?:singular )?noun|verb|adj/,
-    :first => 'abacus',
-    :last => 'zuni',
-    :url => "http://www.chambersharrap.co.uk/chambers/features/chref/chref.py/main?query=%s&title=21st"
-  }
-}
-
 class AzGame
 
   attr_reader :range, :word
   attr_accessor :tries, :total_tries, :total_failed, :failed, :winner
-  def initialize(plugin, lang, word)
+  def initialize(plugin, lang, rules, word)
     @plugin = plugin
     @lang = lang.to_sym
     @word = word.downcase
-    @range = [AZ_RULES[lang][:first].dup, AZ_RULES[lang][:last].dup]
+    @rules = rules
+    @range = [@rules[:first].dup, @rules[:last].dup]
     @total_tries = 0
     @total_failed = 0 # not used, reported, updated
     @tries = Hash.new(0)
@@ -99,6 +83,23 @@ class AzGamePlugin < Plugin
       @wordcache = Hash.new
     end
     debug "\n\n\nA-Z wordcache: #{@wordcache.inspect}\n\n\n"
+    @rules = {
+      :italian => {
+      :good => /s\.f\.|s\.m\.|agg\.|v\.tr\.|v\.(pronom\.)?intr\./, # avv\.|pron\.|cong\.
+      :bad => /var\./,
+      :first => 'abaco',
+      :last => 'zuzzurellone',
+      :url => "http://www.demauroparavia.it/%s",
+      :wapurl => "http://wap.demauroparavia.it/index.php?lemma=%s"
+    },
+    :english => {
+      :good => /(?:singular )?noun|verb|adj/,
+      :first => 'abacus',
+      :last => 'zuni',
+      :url => "http://www.chambersharrap.co.uk/chambers/features/chref/chref.py/main?query=%s&title=21st"
+    }
+    }
+
   end
 
   def save
@@ -183,7 +184,7 @@ class AzGamePlugin < Plugin
       lang = (params[:lang] || @bot.config['core.language']).to_sym
       method = 'random_pick_'+lang.to_s
       m.reply "let me think ..."
-      if AZ_RULES.has_key?(lang) and self.respond_to?(method)
+      if @rules.has_key?(lang) and self.respond_to?(method)
         word = self.send(method)
         if word.empty?
           m.reply "couldn't think of anything ..."
@@ -194,7 +195,7 @@ class AzGamePlugin < Plugin
         return
       end
       m.reply "got it!"
-      @games[k] = AzGame.new(self, lang, word)
+      @games[k] = AzGame.new(self, lang, @rules[lang], word)
     end
     tr = @games[k].total_tries
     case tr
@@ -297,7 +298,7 @@ class AzGamePlugin < Plugin
     end
     wc = @wordcache[:italian]
     return true if wc.key?(word.to_sym)
-    rules = AZ_RULES[:italian]
+    rules = @rules[:italian]
     p = @bot.httputil.get_cached(rules[:wapurl] % word)
     if not p
       error "could not connect!"
@@ -324,7 +325,7 @@ class AzGamePlugin < Plugin
       m.reply "#{min} > #{max}"
       return word
     end
-    rules = AZ_RULES[:italian]
+    rules = @rules[:italian]
     min = rules[:first] if min.empty?
     max = rules[:last]  if max.empty?
     debug "looking for word between #{min.inspect} and #{max.inspect}"
@@ -392,7 +393,7 @@ class AzGamePlugin < Plugin
     end
     wc = @wordcache[:english]
     return true if wc.key?(word.to_sym)
-    rules = AZ_RULES[:english]
+    rules = @rules[:english]
     p = @bot.httputil.get_cached(rules[:url] % URI.escape(word))
     if not p
       error "could not connect!"
@@ -416,7 +417,7 @@ class AzGamePlugin < Plugin
       m.reply "#{min} > #{max}"
       return word
     end
-    rules = AZ_RULES[:english]
+    rules = @rules[:english]
     min = rules[:first] if min.empty?
     max = rules[:last]  if max.empty?
     debug "looking for word between #{min.inspect} and #{max.inspect}"
-- 
cgit v1.2.3