module UnicodeNormalize

def self.canonical_ordering_one(string)

# Canonical Ordering
def self.canonical_ordering_one(string)
  sorting = string.each_char.collect { |c| [c, CLASS_TABLE[c]] }
  (sorting.length-2).downto(0) do |i| # almost, but not exactly bubble sort
    (0..i).each do |j|
      later_class = sorting[j+1].last
      if 0<later_class and later_class<sorting[j].last
        sorting[j], sorting[j+1] = sorting[j+1], sorting[j]
      end
    end
  end
  return sorting.collect(&:first).join('')
end