summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2011-02-02 10:04:56 +0100
committerGiuseppe Bilotta <giuseppe.bilotta@gmail.com>2011-02-02 10:04:56 +0100
commita7017d68e1fb647f60a79f1733e80facea5fae07 (patch)
tree8e28d66edd992e0a1a9b9006b2157234b8512ac0
parent4d68eabaa8dabaecb5ea4af210acbb4d0b10249f (diff)
httputil: nicer UI message when lacking ssl
Rather than complaining about a missing use_ssl= method, if net/https fails to load we define a mock use_ssl= method that raises a runtime error making the LoadError message public. This is not the most user-friendly message (we would prefer not to expose internals), but it should be clear enough to help owners that forget to read the log find what's missing.
-rw-r--r--lib/rbot/core/utils/httputil.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/rbot/core/utils/httputil.rb b/lib/rbot/core/utils/httputil.rb
index 03671cfe..e69120be 100644
--- a/lib/rbot/core/utils/httputil.rb
+++ b/lib/rbot/core/utils/httputil.rb
@@ -14,8 +14,18 @@ require 'iconv'
begin
require 'net/https'
rescue LoadError => e
- error "Couldn't load 'net/https': #{e.pretty_inspect}"
+ error "Couldn't load 'net/https': #{e}"
error "Secured HTTP connections will fail"
+ # give a nicer error than "undefined method `use_ssl='"
+ ::Net::HTTP.class_eval <<-EOC
+ define_method :use_ssl= do |val|
+ # does anybody really set it to false?
+ break if !val
+ raise _("I can't do secure HTTP, sorry (%{msg})") % {
+ :msg => e.message
+ }
+ end
+ EOC
end
# To handle Gzipped pages