2007-01-22 14:43:50 +01:00
|
|
|
module ActiveSupport #:nodoc:
|
|
|
|
module CoreExtensions #:nodoc:
|
|
|
|
module CGI #:nodoc:
|
|
|
|
module EscapeSkippingSlashes #:nodoc:
|
2009-02-04 21:26:08 +01:00
|
|
|
if RUBY_VERSION >= '1.9'
|
|
|
|
def escape_skipping_slashes(str)
|
|
|
|
str = str.join('/') if str.respond_to? :join
|
|
|
|
str.gsub(/([^ \/a-zA-Z0-9_.-])/n) do
|
|
|
|
"%#{$1.unpack('H2' * $1.bytesize).join('%').upcase}"
|
|
|
|
end.tr(' ', '+')
|
|
|
|
end
|
|
|
|
else
|
|
|
|
def escape_skipping_slashes(str)
|
|
|
|
str = str.join('/') if str.respond_to? :join
|
|
|
|
str.gsub(/([^ \/a-zA-Z0-9_.-])/n) do
|
|
|
|
"%#{$1.unpack('H2').first.upcase}"
|
|
|
|
end.tr(' ', '+')
|
|
|
|
end
|
2007-01-22 14:43:50 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|