sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit c46d92e2fa2ca586763d78a4bf9d1b525b1ec0a4
parent 7a74edbe9aa64a0b4e1ee606ea51935b57e294ab
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date:   Thu, 31 Dec 2009 15:36:51 -0800

add String#check

Diffstat:
M lib/sup/util.rb | 10 ++++++++++
1 file changed, 10 insertions(+), 0 deletions(-)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
@@ -296,6 +296,16 @@ class String
   ##
   ## split_on will be passed to String#split, so you can leave this nil for space.
   def to_set_of_symbols split_on=nil; Set.new split(split_on).map { |x| x.strip.intern } end
+
+  class CheckError < ArgumentError; end
+  def check
+    begin
+      fail "unexpected encoding #{encoding}" if respond_to?(:encoding) && !(encoding == Encoding::UTF_8 || encoding == Encoding::ASCII)
+      fail "invalid encoding" if respond_to?(:valid_encoding?) && !valid_encoding?
+    rescue
+      raise CheckError.new($!.message)
+    end
+  end
 end
 
 class Numeric