Array#pack and String#unpack are broken on OS X Tiger's ruby build. This is known. I'm writing a lib where pack and unpack are used extensively and would like to provide a workaround. Does anyone have such a workaround already worked out? I can't think of a real easy way to do it so I thought I'd check before running the gauntlet. See also http://hans.fugal.net/yodl/blosxom.cgi/mac/ruby-pack.html
on 2006-03-13 16:31
on 2006-03-13 17:48
Here's a simplistic solution: broken = (1 == .pack('n')) if broken class String alias_method :broken_unpack, :unpack def unpack(spec) return broken_unpack(spec.tr('nvNV', 'vnVN')) end end class Array alias_method :broken_pack, :pack def pack(spec) return broken_pack(spec.tr('nvNV', 'vnVN')) end end end p(.pack('n')) p(.pack('v')) p(.pack('N')) p(.pack('V')) Paul.
on 2006-03-13 17:54
Paul Battley wrote: > return broken_unpack(spec.tr('nvNV', 'vnVN')) tr never occurred to me. That's perfect!