brew vendor-gems: commit updates.
This commit is contained in:
parent
4b6d76faf8
commit
2681bebd4a
@ -83,7 +83,7 @@ $:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version
|
|||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/patchelf-1.4.0/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/patchelf-1.4.0/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/plist-3.7.0/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/plist-3.7.0/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/pry-0.14.2/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/pry-0.14.2/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rack-3.0.6.1/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rack-3.0.7/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/unparser-0.6.4/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/unparser-0.6.4/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbi-0.0.14/lib")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/gems/rbi-0.0.14/lib")
|
||||||
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/universal-darwin-21/#{Gem.extension_api_version}/rdiscount-2.2.7")
|
$:.unshift File.expand_path("#{__dir__}/../#{RUBY_ENGINE}/#{Gem.ruby_api_version}/extensions/universal-darwin-21/#{Gem.extension_api_version}/rdiscount-2.2.7")
|
||||||
|
|||||||
@ -54,13 +54,11 @@ module Rack
|
|||||||
RACK_RESPONSE_FINISHED = 'rack.response_finished'
|
RACK_RESPONSE_FINISHED = 'rack.response_finished'
|
||||||
RACK_REQUEST_FORM_INPUT = 'rack.request.form_input'
|
RACK_REQUEST_FORM_INPUT = 'rack.request.form_input'
|
||||||
RACK_REQUEST_FORM_HASH = 'rack.request.form_hash'
|
RACK_REQUEST_FORM_HASH = 'rack.request.form_hash'
|
||||||
RACK_REQUEST_FORM_PAIRS = 'rack.request.form_pairs'
|
|
||||||
RACK_REQUEST_FORM_VARS = 'rack.request.form_vars'
|
RACK_REQUEST_FORM_VARS = 'rack.request.form_vars'
|
||||||
RACK_REQUEST_FORM_ERROR = 'rack.request.form_error'
|
RACK_REQUEST_FORM_ERROR = 'rack.request.form_error'
|
||||||
RACK_REQUEST_COOKIE_HASH = 'rack.request.cookie_hash'
|
RACK_REQUEST_COOKIE_HASH = 'rack.request.cookie_hash'
|
||||||
RACK_REQUEST_COOKIE_STRING = 'rack.request.cookie_string'
|
RACK_REQUEST_COOKIE_STRING = 'rack.request.cookie_string'
|
||||||
RACK_REQUEST_QUERY_HASH = 'rack.request.query_hash'
|
RACK_REQUEST_QUERY_HASH = 'rack.request.query_hash'
|
||||||
RACK_REQUEST_QUERY_PAIRS = 'rack.request.query_pairs'
|
|
||||||
RACK_REQUEST_QUERY_STRING = 'rack.request.query_string'
|
RACK_REQUEST_QUERY_STRING = 'rack.request.query_string'
|
||||||
RACK_METHODOVERRIDE_ORIGINAL_METHOD = 'rack.methodoverride.original_method'
|
RACK_METHODOVERRIDE_ORIGINAL_METHOD = 'rack.methodoverride.original_method'
|
||||||
end
|
end
|
||||||
@ -13,31 +13,6 @@ module Rack
|
|||||||
module Multipart
|
module Multipart
|
||||||
MULTIPART_BOUNDARY = "AaB03x"
|
MULTIPART_BOUNDARY = "AaB03x"
|
||||||
|
|
||||||
# Accumulator for multipart form data, conforming to the QueryParser API.
|
|
||||||
# In future, the Parser could return the pair list directly, but that would
|
|
||||||
# change its API.
|
|
||||||
class ParamList # :nodoc:
|
|
||||||
def self.make_params
|
|
||||||
new
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.normalize_params(params, key, value)
|
|
||||||
params << [key, value]
|
|
||||||
end
|
|
||||||
|
|
||||||
def initialize
|
|
||||||
@pairs = []
|
|
||||||
end
|
|
||||||
|
|
||||||
def <<(pair)
|
|
||||||
@pairs << pair
|
|
||||||
end
|
|
||||||
|
|
||||||
def to_params_hash
|
|
||||||
@pairs
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def parse_multipart(env, params = Rack::Utils.default_query_parser)
|
def parse_multipart(env, params = Rack::Utils.default_query_parser)
|
||||||
io = env[RACK_INPUT]
|
io = env[RACK_INPUT]
|
||||||
@ -39,42 +39,19 @@ module Rack
|
|||||||
@param_depth_limit = param_depth_limit
|
@param_depth_limit = param_depth_limit
|
||||||
end
|
end
|
||||||
|
|
||||||
# Originally stolen from Mongrel, now with some modifications:
|
# Stolen from Mongrel, with some small modifications:
|
||||||
# Parses a query string by breaking it up at the '&'. You can also use this
|
# Parses a query string by breaking it up at the '&'. You can also use this
|
||||||
# to parse cookies by changing the characters used in the second parameter
|
# to parse cookies by changing the characters used in the second parameter
|
||||||
# (which defaults to '&').
|
# (which defaults to '&').
|
||||||
#
|
|
||||||
# Returns an array of 2-element arrays, where the first element is the
|
|
||||||
# key and the second element is the value.
|
|
||||||
def split_query(qs, separator = nil, &unescaper)
|
|
||||||
pairs = []
|
|
||||||
|
|
||||||
if qs && !qs.empty?
|
|
||||||
unescaper ||= method(:unescape)
|
|
||||||
|
|
||||||
qs.split(separator ? (COMMON_SEP[separator] || /[#{separator}] */n) : DEFAULT_SEP).each do |p|
|
|
||||||
next if p.empty?
|
|
||||||
pair = p.split('=', 2).map!(&unescaper)
|
|
||||||
pair << nil if pair.length == 1
|
|
||||||
pairs << pair
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
pairs
|
|
||||||
rescue ArgumentError => e
|
|
||||||
raise InvalidParameterError, e.message, e.backtrace
|
|
||||||
end
|
|
||||||
|
|
||||||
# Parses a query string by breaking it up at the '&'. You can also use this
|
|
||||||
# to parse cookies by changing the characters used in the second parameter
|
|
||||||
# (which defaults to '&').
|
|
||||||
#
|
|
||||||
# Returns a hash where each value is a string (when a key only appears once)
|
|
||||||
# or an array of strings (when a key appears more than once).
|
|
||||||
def parse_query(qs, separator = nil, &unescaper)
|
def parse_query(qs, separator = nil, &unescaper)
|
||||||
|
unescaper ||= method(:unescape)
|
||||||
|
|
||||||
params = make_params
|
params = make_params
|
||||||
|
|
||||||
split_query(qs, separator, &unescaper).each do |k, v|
|
(qs || '').split(separator ? (COMMON_SEP[separator] || /[#{separator}] */n) : DEFAULT_SEP).each do |p|
|
||||||
|
next if p.empty?
|
||||||
|
k, v = p.split('=', 2).map!(&unescaper)
|
||||||
|
|
||||||
if cur = params[k]
|
if cur = params[k]
|
||||||
if cur.class == Array
|
if cur.class == Array
|
||||||
params[k] << v
|
params[k] << v
|
||||||
@ -86,7 +63,7 @@ module Rack
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
params.to_h
|
return params.to_h
|
||||||
end
|
end
|
||||||
|
|
||||||
# parse_nested_query expands a query string into structural types. Supported
|
# parse_nested_query expands a query string into structural types. Supported
|
||||||
@ -97,11 +74,17 @@ module Rack
|
|||||||
def parse_nested_query(qs, separator = nil)
|
def parse_nested_query(qs, separator = nil)
|
||||||
params = make_params
|
params = make_params
|
||||||
|
|
||||||
split_query(qs, separator).each do |k, v|
|
unless qs.nil? || qs.empty?
|
||||||
_normalize_params(params, k, v, 0)
|
(qs || '').split(separator ? (COMMON_SEP[separator] || /[#{separator}] */n) : DEFAULT_SEP).each do |p|
|
||||||
|
k, v = p.split('=', 2).map! { |s| unescape(s) }
|
||||||
|
|
||||||
|
_normalize_params(params, k, v, 0)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
params.to_h
|
return params.to_h
|
||||||
|
rescue ArgumentError => e
|
||||||
|
raise InvalidParameterError, e.message, e.backtrace
|
||||||
end
|
end
|
||||||
|
|
||||||
# normalize_params recursively expands parameters into structural types. If
|
# normalize_params recursively expands parameters into structural types. If
|
||||||
@ -113,14 +96,6 @@ module Rack
|
|||||||
_normalize_params(params, name, v, 0)
|
_normalize_params(params, name, v, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
# This value is used by default when a parameter is missing (nil). This
|
|
||||||
# usually happens when a parameter is specified without an `=value` part.
|
|
||||||
# The default value is an empty string, but this can be overridden by
|
|
||||||
# subclasses.
|
|
||||||
def missing_value
|
|
||||||
String.new
|
|
||||||
end
|
|
||||||
|
|
||||||
private def _normalize_params(params, name, v, depth)
|
private def _normalize_params(params, name, v, depth)
|
||||||
raise ParamsTooDeepError if depth >= param_depth_limit
|
raise ParamsTooDeepError if depth >= param_depth_limit
|
||||||
|
|
||||||
@ -155,8 +130,6 @@ module Rack
|
|||||||
|
|
||||||
return if k.empty?
|
return if k.empty?
|
||||||
|
|
||||||
v ||= missing_value
|
|
||||||
|
|
||||||
if after == ''
|
if after == ''
|
||||||
if k == '[]' && depth != 0
|
if k == '[]' && depth != 0
|
||||||
return [v]
|
return [v]
|
||||||
@ -483,22 +483,11 @@ module Rack
|
|||||||
# Returns the data received in the query string.
|
# Returns the data received in the query string.
|
||||||
def GET
|
def GET
|
||||||
if get_header(RACK_REQUEST_QUERY_STRING) == query_string
|
if get_header(RACK_REQUEST_QUERY_STRING) == query_string
|
||||||
if query_hash = get_header(RACK_REQUEST_QUERY_HASH)
|
get_header(RACK_REQUEST_QUERY_HASH)
|
||||||
return query_hash
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set_header(RACK_REQUEST_QUERY_HASH, expand_params(query_param_list))
|
|
||||||
end
|
|
||||||
|
|
||||||
def query_param_list
|
|
||||||
if get_header(RACK_REQUEST_QUERY_STRING) == query_string
|
|
||||||
get_header(RACK_REQUEST_QUERY_PAIRS)
|
|
||||||
else
|
else
|
||||||
query_pairs = split_query(query_string, '&')
|
query_hash = parse_query(query_string, '&')
|
||||||
set_header RACK_REQUEST_QUERY_STRING, query_string
|
set_header(RACK_REQUEST_QUERY_STRING, query_string)
|
||||||
set_header RACK_REQUEST_QUERY_HASH, nil
|
set_header(RACK_REQUEST_QUERY_HASH, query_hash)
|
||||||
set_header(RACK_REQUEST_QUERY_PAIRS, query_pairs)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -507,16 +496,6 @@ module Rack
|
|||||||
# This method support both application/x-www-form-urlencoded and
|
# This method support both application/x-www-form-urlencoded and
|
||||||
# multipart/form-data.
|
# multipart/form-data.
|
||||||
def POST
|
def POST
|
||||||
if get_header(RACK_REQUEST_FORM_INPUT).equal?(get_header(RACK_INPUT))
|
|
||||||
if form_hash = get_header(RACK_REQUEST_FORM_HASH)
|
|
||||||
return form_hash
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set_header(RACK_REQUEST_FORM_HASH, expand_params(body_param_list))
|
|
||||||
end
|
|
||||||
|
|
||||||
def body_param_list
|
|
||||||
if error = get_header(RACK_REQUEST_FORM_ERROR)
|
if error = get_header(RACK_REQUEST_FORM_ERROR)
|
||||||
raise error.class, error.message, cause: error.cause
|
raise error.class, error.message, cause: error.cause
|
||||||
end
|
end
|
||||||
@ -524,36 +503,36 @@ module Rack
|
|||||||
begin
|
begin
|
||||||
rack_input = get_header(RACK_INPUT)
|
rack_input = get_header(RACK_INPUT)
|
||||||
|
|
||||||
form_pairs = nil
|
# If the form hash was already memoized:
|
||||||
|
if form_hash = get_header(RACK_REQUEST_FORM_HASH)
|
||||||
# If the form data has already been memoized from the same
|
# And it was memoized from the same input:
|
||||||
# input:
|
if get_header(RACK_REQUEST_FORM_INPUT).equal?(rack_input)
|
||||||
if get_header(RACK_REQUEST_FORM_INPUT).equal?(rack_input)
|
return form_hash
|
||||||
if form_pairs = get_header(RACK_REQUEST_FORM_PAIRS)
|
|
||||||
return form_pairs
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Otherwise, figure out how to parse the input:
|
||||||
if rack_input.nil?
|
if rack_input.nil?
|
||||||
form_pairs = []
|
set_header RACK_REQUEST_FORM_INPUT, nil
|
||||||
|
set_header(RACK_REQUEST_FORM_HASH, {})
|
||||||
elsif form_data? || parseable_data?
|
elsif form_data? || parseable_data?
|
||||||
unless form_pairs = Rack::Multipart.extract_multipart(self, Rack::Multipart::ParamList)
|
unless set_header(RACK_REQUEST_FORM_HASH, parse_multipart)
|
||||||
form_vars = rack_input.read
|
form_vars = get_header(RACK_INPUT).read
|
||||||
|
|
||||||
# Fix for Safari Ajax postings that always append \0
|
# Fix for Safari Ajax postings that always append \0
|
||||||
# form_vars.sub!(/\0\z/, '') # performance replacement:
|
# form_vars.sub!(/\0\z/, '') # performance replacement:
|
||||||
form_vars.slice!(-1) if form_vars.end_with?("\0")
|
form_vars.slice!(-1) if form_vars.end_with?("\0")
|
||||||
|
|
||||||
set_header RACK_REQUEST_FORM_VARS, form_vars
|
set_header RACK_REQUEST_FORM_VARS, form_vars
|
||||||
form_pairs = split_query(form_vars, '&')
|
set_header RACK_REQUEST_FORM_HASH, parse_query(form_vars, '&')
|
||||||
end
|
end
|
||||||
else
|
|
||||||
form_pairs = []
|
|
||||||
end
|
|
||||||
|
|
||||||
set_header RACK_REQUEST_FORM_INPUT, rack_input
|
set_header RACK_REQUEST_FORM_INPUT, get_header(RACK_INPUT)
|
||||||
set_header RACK_REQUEST_FORM_HASH, nil
|
get_header RACK_REQUEST_FORM_HASH
|
||||||
set_header(RACK_REQUEST_FORM_PAIRS, form_pairs)
|
else
|
||||||
|
set_header RACK_REQUEST_FORM_INPUT, get_header(RACK_INPUT)
|
||||||
|
set_header(RACK_REQUEST_FORM_HASH, {})
|
||||||
|
end
|
||||||
rescue => error
|
rescue => error
|
||||||
set_header(RACK_REQUEST_FORM_ERROR, error)
|
set_header(RACK_REQUEST_FORM_ERROR, error)
|
||||||
raise
|
raise
|
||||||
@ -693,28 +672,6 @@ module Rack
|
|||||||
Rack::Multipart.extract_multipart(self, query_parser)
|
Rack::Multipart.extract_multipart(self, query_parser)
|
||||||
end
|
end
|
||||||
|
|
||||||
def split_query(query, d = '&')
|
|
||||||
query_parser = query_parser()
|
|
||||||
unless query_parser.respond_to?(:split_query)
|
|
||||||
query_parser = Utils.default_query_parser
|
|
||||||
unless query_parser.respond_to?(:split_query)
|
|
||||||
query_parser = QueryParser.make_default(0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
query_parser.split_query(query, d)
|
|
||||||
end
|
|
||||||
|
|
||||||
def expand_params(pairs, query_parser = query_parser())
|
|
||||||
params = query_parser.make_params
|
|
||||||
|
|
||||||
pairs.each do |key, value|
|
|
||||||
query_parser.normalize_params(params, key, value)
|
|
||||||
end
|
|
||||||
|
|
||||||
params.to_params_hash
|
|
||||||
end
|
|
||||||
|
|
||||||
def split_header(value)
|
def split_header(value)
|
||||||
value ? value.strip.split(/[,\s]+/) : []
|
value ? value.strip.split(/[,\s]+/) : []
|
||||||
end
|
end
|
||||||
@ -25,7 +25,7 @@ module Rack
|
|||||||
VERSION
|
VERSION
|
||||||
end
|
end
|
||||||
|
|
||||||
RELEASE = "3.0.6.1"
|
RELEASE = "3.0.7"
|
||||||
|
|
||||||
# Return the Rack release as a dotted string.
|
# Return the Rack release as a dotted string.
|
||||||
def self.release
|
def self.release
|
||||||
Loading…
x
Reference in New Issue
Block a user