Method: Addressable::URI#normalized_query
- Defined in:
- lib/addressable/uri.rb
#normalized_query(*flags) ⇒ String
The query component for this URI, normalized.
1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 |
# File 'lib/addressable/uri.rb', line 1613 def normalized_query(*flags) return nil unless self.query return @normalized_query unless @normalized_query == NONE @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 = (query || "").split("&", -1) pairs.delete_if(&:empty?).uniq! if flags.include?(:compacted) pairs.sort! if flags.include?(:sorted) component = pairs.map do |pair| Addressable::URI.normalize_component( pair, Addressable::URI::NormalizeCharacterClasses::QUERY, "+" ) end.join("&") component == "" ? nil : component end # All normalized values should be UTF-8 force_utf8_encoding_if_needed(@normalized_query) @normalized_query end |