1edb3771a26be921d0e7f5b10f0d69a966c5899a
[feedcatcher.git] / vendor / rails / activesupport / lib / active_support / core_ext / cgi / escape_skipping_slashes.rb
1 module ActiveSupport #:nodoc:
2 module CoreExtensions #:nodoc:
3 module CGI #:nodoc:
4 module EscapeSkippingSlashes #:nodoc:
5 if RUBY_VERSION >= '1.9'
6 def escape_skipping_slashes(str)
7 str = str.join('/') if str.respond_to? :join
8 str.gsub(/([^ \/a-zA-Z0-9_.-])/n) do
9 "%#{$1.unpack('H2' * $1.bytesize).join('%').upcase}"
10 end.tr(' ', '+')
11 end
12 else
13 def escape_skipping_slashes(str)
14 str = str.join('/') if str.respond_to? :join
15 str.gsub(/([^ \/a-zA-Z0-9_.-])/n) do
16 "%#{$1.unpack('H2').first.upcase}"
17 end.tr(' ', '+')
18 end
19 end
20 end
21 end
22 end
23 end