遠藤です。
Python の base64.py は RFC 3548 準拠ですが、Ruby の pack の m は現在
RFC 2045 準拠で、ちょっと古いです。
そこで RFC 4648 に準拠するのはどうでしょうか。
私が読んだ感じでは、RFC 2045 -> RFC 4648 の変更点は以下の 3 つのようです。
1) 折り返さない (MUST)
2) デコード対象外の文字 (改行含む) があったら拒絶する (MUST)
3) URL やファイル名安全なバリアントが定義されている (+/ でなく -_ を使う)
(定義されてるだけでサポート必須ではない)
今まで私が pack の m を使うときは [str].pack("m").gsub("\n", "") が
イディオムのようになっていたので、1) はとても便利だと思います。
必須ではないですが、3) も便利そうです。base64.py でも提供されています。
どういう形で提供するかは難しいところですが。
--
Yusuke ENDOH <mame / tsg.ne.jp>