]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - lib/rbot/utils.rb
Make rss feed handle lookup case insensitive
[user/henk/code/ruby/rbot.git] / lib / rbot / utils.rb
index eabe5c17eee02b83365a77807c01340bf1903f86..d1052390a91e206787862a3951cd6fdac7c5c20f 100644 (file)
@@ -1,10 +1,14 @@
 require 'net/http'
 require 'uri'
+require 'tempfile'
+
 begin
   $we_have_html_entities_decoder = require 'htmlentities'
 rescue LoadError
   $we_have_html_entities_decoder = false
-  UNESCAPE_TABLE = {
+  module Irc
+    module Utils
+      UNESCAPE_TABLE = {
     'raquo' => '>>',
     'quot' => '"',
     'apos' => '\'',
@@ -268,9 +272,12 @@ rescue LoadError
     'sigma' => 'σ',
     'oacute' => '\xf3',
 =end
-  }
+      }
+    end
+  end
 end
 
+
 module Irc
 
   # miscellaneous useful functions
@@ -312,6 +319,23 @@ module Irc
       }
     end
 
+
+    @@safe_save_dir = nil
+    def Utils.set_safe_save_dir(str)
+      @@safe_save_dir = str.dup
+    end
+
+    def Utils.safe_save(file)
+      raise 'No safe save directory defined!' if @@safe_save_dir.nil?
+      basename = File.basename(file)
+      temp = Tempfile.new(basename,@@safe_save_dir)
+      temp.binmode
+      yield temp if block_given?
+      temp.close
+      File.rename(temp.path, file)
+    end
+
+
     # returns a string containing the result of an HTTP GET on the uri
     def Utils.http_get(uristr, readtimeout=8, opentimeout=4)