From: Kazuhiro NISHIYAMA Date: 2007-07-14T15:56:10+09:00 Subject: [ruby-dev:31221] Base64.b64encode len bug 西山和広です。 def b64encode(bin, len = 60) encode64(bin).scan(/.{1,#{len}}/o) do print $&, "\n" end end のように正規表現に不要なoオプションがついているため、 最初の呼び出し時のlenの値がずっと使われてしまいます。 % cat b.rb require 'base64' puts Base64.b64encode('a'*10) puts puts Base64.b64encode('a'*10, 10) % ruby18 -v b.rb ruby 1.8.6 (2007-03-16 patchlevel 5000) [i386-cygwin] YWFhYWFhYWFhYQ== YWFhYWFhYWFhYQ== YWFhYWFhYWFhYQ== YWFhYWFhYWFhYQ== % cat b2.rb require 'base64' puts Base64.b64encode('a'*10, 10) puts puts Base64.b64encode('a'*10) % ruby18 -v b2.rb ruby 1.8.6 (2007-03-16 patchlevel 5000) [i386-cygwin] YWFhYWFhYW FhYQ== YWFhYWFhYWFhYQ== YWFhYWFhYW FhYQ== YWFhYWFhYWFhYQ== % -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)