class Addressable::Template
def normalize_value(value)
-
(Hash, Array, String)
- The normalized values
Parameters:
-
value
(Hash, Array, String
) --
def normalize_value(value) # Handle unicode normalization if value.respond_to?(:to_ary) value.to_ary.map! { |val| normalize_value(val) } elsif value.kind_of?(Hash) value = value.inject({}) { |acc, (k, v)| acc[normalize_value(k)] = normalize_value(v) acc } else value = value.to_s if !value.kind_of?(String) if value.encoding != Encoding::UTF_8 value = value.dup.force_encoding(Encoding::UTF_8) end value = value.unicode_normalize(:nfc) end value end