module TingYun::Support::Serialize::EncodingNormalizer
Public Class Methods
choose_normalizer()
click to toggle source
# File lib/ting_yun/support/serialize/encoding_normalizer.rb, line 39 def self.choose_normalizer if TingYun::Support::LanguageSupport.supports_string_encodings? EncodingNormalizer else IconvNormalizer end end
normalize_object(object)
click to toggle source
# File lib/ting_yun/support/serialize/encoding_normalizer.rb, line 12 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 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(str)
click to toggle source
# File lib/ting_yun/support/serialize/encoding_normalizer.rb, line 34 def self.normalize_string(str) @normalizer ||= choose_normalizer @normalizer.normalize(str) end