Sha256: e06b27e44bd52f618a004e90079654774ad7fa372e6656ebb29dfa5f2875b6e2
Contents?: true
Size: 1.81 KB
Versions: 14
Compression:
Stored size: 1.81 KB
Contents
# This software code is made available "AS IS" without warranties of any # kind. You may copy, display, modify and redistribute the software # code either by itself or as incorporated into your code; provided that # you do not remove any proprietary notices. Your use of this software # code is at your own risk and you waive any claim against the author # with respect to your use of this software code. # (c) 2007 s3sync.net # # The purpose of this file is to overlay the cgi class # to add some functionality # (without changing the file itself or requiring a specific version) # It still isn't perfectly robust, i.e. if radical changes are made # to the underlying lib this stuff will need updating. require 'cgi' require 'iconv' # for UTF-8 conversion # thanks to http://www.redhillconsulting.com.au/blogs/simon/archives/000326.html module S3ExtendCGI def self.included(base) base.extend(ClassMethods) base.class_eval do class << self alias_method :S3Extend_escape_orig, :escape unless method_defined?(:S3Extend_escape_orig) alias_method :escape, :S3Extend_escape end end end module ClassMethods @@exemptSlashesInEscape = false attr_writer :exemptSlashesInEscape @@usePercent20InEscape = false attr_writer :usePercent20InEscape @@nativeCharacterEncoding = "ISO-8859-1" attr_writer :nativeCharacterEncoding @@useUTF8InEscape = false attr_writer :useUTF8InEscape def S3Extend_escape(string) result = string result = Iconv.iconv("UTF-8", @nativeCharacterEncoding, string).join if @useUTF8InEscape result = S3Extend_escape_orig(result) result.gsub!(/%2f/i, "/") if @exemptSlashesInEscape result.gsub!("+", "%20") if @usePercent20InEscape result end end end CGI.send(:include, S3ExtendCGI)
Version data entries
14 entries across 14 versions & 8 rubygems