Module: TingYun::Support::Serialize::EncodingNormalizer
- Defined in:
- lib/ting_yun/support/serialize/encoding_normalizer.rb
Defined Under Namespace
Modules: EncodingNormalizer, IconvNormalizer
Class Method Summary
collapse
Class Method Details
.choose_normalizer ⇒ Object
.normalize_object(object) ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# 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) ⇒ Object
34
35
36
37
|
# File 'lib/ting_yun/support/serialize/encoding_normalizer.rb', line 34
def self.normalize_string(str)
@normalizer ||= choose_normalizer
@normalizer.normalize(str)
end
|