module SJCL::Codec::UTF8String

Public Class Methods

fromBits(arr) click to toggle source
# File lib/sjcl/codec_string.rb, line 6
def self.fromBits(arr)
  out = []
  bl = SJCL::BitArray.bitLength(arr)
  i = 0
  tmp = 0
  (bl/8).times do
    if ((i&3) === 0)
      tmp = arr[i/4]
    end
    out << (tmp >> 24)
    tmp <<= 8
    i += 1
  end
  out.pack('C*').force_encoding('utf-8')
end
toBits(str) click to toggle source
# File lib/sjcl/codec_string.rb, line 22
def self.toBits(str)
  str_arr = str.unpack("C*")
  out = []
  tmp=0
  i=0
  str_arr.length.times do
    tmp = tmp << 8 | str_arr[i]
    if ((i&3) === 3)
      out.push(tmp);
      tmp = 0;
    end
    i += 1
  end
  if (i&3 != 0)
    out.push(SJCL::BitArray.partial(8*(i&3), tmp));
  end
  return out
end