From b50bc708c4be90d85328d52ba23755a58f9b59a4 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sun, 15 Oct 2006 20:38:25 +0000 Subject: Utils.safe_save does a 'safe' saving (save to tempfile, move tempfile to new location) --- lib/rbot/utils.rb | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'lib/rbot') diff --git a/lib/rbot/utils.rb b/lib/rbot/utils.rb index eabe5c17..ae45e5d5 100644 --- a/lib/rbot/utils.rb +++ b/lib/rbot/utils.rb @@ -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,17 @@ module Irc } end + + def Utils.safe_save(file) + basename = File.basename(file) + temp = Tempfile.new(basename) + 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) -- cgit v1.2.3