📝 Source code
# File actionpack/lib/action_dispatch/http/query_parser.rb, line 20
def self.each_pair(s, separator = nil)
return enum_for(:each_pair, s, separator) unless block_given?
s ||= ""
splitter =
if separator
COMMON_SEP[separator] || /[#{separator}] */n
elsif strict_query_string_separator
DEFAULT_SEP
elsif SEMICOLON_COMPAT && s.include?(";")
if strict_query_string_separator.nil?
ActionDispatch.deprecator.warn("Using semicolon as a query string separator is deprecated and will not be supported in Rails 8.1 or Rack 3.0. Use `&` instead.")
end
COMPAT_SEP
else
DEFAULT_SEP
end
s.split(splitter).each do |part|
next if part.empty?
k, v = part.split("=", 2)
k = URI.decode_www_form_component(k)
v &&= URI.decode_www_form_component(v)
yield k, v
end
nil
end
🔎 See on GitHub