Google

# File rbot/keywords.rb, line 118
    def scan
      # first scan for DBHash files, and load them
      Dir["#{@bot.botclass}/keywords/*"].each {|f|
        next unless f =~ /\.db$/
        hsh = DBHash.new @bot, f, true
        key = File.basename(f).gsub(/\.db$/, "")
        debug "keywords module: loading DBHash file #{f}, key #{key}"
        @statickeywords[key] = hsh
      }
      
      # then scan for non DBHash files, and convert/import them and delete
      Dir["#{@bot.botclass}/keywords/*"].each {|f|
        next if f =~ /\.db$/
        puts "auto converting keywords from #{f}"
        key = File.basename(f)
        unless @statickeywords.has_key?(key)
          @statickeywords[key] = DBHash.new @bot, "#{f}.db", true
        end
        IO.foreach(f) {|line|
          if(line =~ /^(.*?)\s*<?=(is|are)?=?>\s*(.*)$/)
            lhs = $1
            mhs = $2
            rhs = $3
            # support infobot style factfiles, by fixing them up here
            rhs.gsub!(/\$who/, "<who>")
            mhs = "is" unless mhs
            rhs = Keyword.escape rhs
            values = rhs.split("<=or=>")
            @statickeywords[key][lhs] = Keyword.new(mhs, values).dump
          end
        }
        File.delete(f)
        @statickeywords[key].flush
      }
    end