class Addressable::URI
def normalized_query(*flags)
-
(String)
- The query component, normalized.
def normalized_query(*flags) return nil unless self.query return @normalized_query if defined?(@normalized_query) @normalized_query ||= begin modified_query_class = Addressable::URI::CharacterClasses::QUERY.dup # Make sure possible key-value pair delimiters are escaped. modified_query_class.sub!("\\&", "").sub!("\\;", "") pairs = (self.query || "").split("&", -1) pairs.delete_if(&:empty?) if flags.include?(:compacted) pairs.sort! if flags.include?(:sorted) component = pairs.map do |pair| Addressable::URI.normalize_component(pair, modified_query_class, "+") end.join("&") component == "" ? nil : component end # All normalized values should be UTF-8 @normalized_query.force_encoding(Encoding::UTF_8) if @normalized_query @normalized_query end