module Mmtrix::Agent::EncodingNormalizer

Public Class Methods

choose_normalizer() click to toggle source
# File lib/mmtrix/agent/encoding_normalizer.rb, line 38
def self.choose_normalizer
  if Mmtrix::LanguageSupport.supports_string_encodings?
    EncodingNormalizer
  else
    IconvNormalizer
  end
end
normalize_object(object) click to toggle source
# File lib/mmtrix/agent/encoding_normalizer.rb, line 15
def self.normalize_object(object)
  case object
  when String
    normalize_string(object)
  when Symbol
    normalize_string(object.to_s)
  when Array
    return object if object.empty?
    object.map { |x| normalize_object(x) }
  when Hash
    return object if object.empty?
    hash = {}
    object.each_pair do |k, v|
      k = normalize_string(k)      if k.is_a?(String)
      k = normalize_string(k.to_s) if k.is_a?(Symbol)
      hash[k] = normalize_object(v)
    end
    hash
  else
    object
  end
end
normalize_string(raw_string) click to toggle source
# File lib/mmtrix/agent/encoding_normalizer.rb, line 10
def self.normalize_string(raw_string)
  @normalizer ||= choose_normalizer
  @normalizer.normalize(raw_string)
end