module Sterile

def transmogrify(string, &block)

def transmogrify(string, &block)
  raise "No block given" unless block_given?
  result = ""
  string.unpack("U*").each do |codepoint|
    cg = codepoint >> 8
    cp = codepoint & 0xFF
    begin
      mapping = Array(codepoints_data[cg][cp])
      result << yield(mapping, codepoint)
    rescue
    end
  end
  result
end