出沢です

こんなかなぁ
class Mime < String
  def header_encode_jp(charset="iso-2022-jp",pre="",len=76,sep="\n ",encoding="B")
  def header_encode   (charset              ,pre="",len=76,sep="\n ",encoding="B")
  def header_decode
end

header_encode_jp は charset に合わせて nkf で変換。
header_encode    は charset が必須の引き数。文字コード変換無し。
いずれも戻り値は String

ん、待てよ。
これだと
str=Mime.new
str="文字列"
str.header_encode_jp

はエラーか。。。
代入演算子の再定義って出来ないでしたよね。
  str=Mime.new("文字列")
  はやだなぁ。。。
だめか、よい案かと思ったのですが。

ではやはり Stringへの追加メソッドにさせて頂いて、

案1
  def mime_encode_jp(charset="iso-2022-jp",pre="",len=76,sep="\n ",encoding="B")
  def mime_encode   (charset              ,pre="",len=76,sep="\n ",encoding="B")
  def mime_decode
end

案2
  def mime_encode(pre="",len=76,sep="\n ",encoding="B",charset="iso-2022-jp")
  として、charset="iso-2022-jp" のときだけ、NKF かならず変換。
    encoding と charset と何方の方が順番が早い方が良いのかな。
    
# 代入演算子の再定義調べていて ||= を発見した。
# 知らなかった。
# これで隨分書きやすくなる。