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

Version Path
mgreenly-s3sync-1.2.4 lib/s3sync/S3encoder.rb
cprobert-s3sync-1.3.6 lib/s3sync/S3encoder.rb
s3sync-cf-0.0.1 lib/s3sync/S3encoder.rb
s3sync-cf-0.0.0 lib/s3sync/S3encoder.rb
frahugo-s3sync-1.3.8 lib/s3sync/S3encoder.rb
aproxacs-s3sync-1.3.6 lib/s3sync/S3encoder.rb
aproxacs-s3sync-1.3.5 lib/s3sync/S3encoder.rb
aproxacs-s3sync-1.3.4 lib/s3sync/S3encoder.rb
aproxacs-s3sync-1.3.3 lib/s3sync/S3encoder.rb
moserp-s3sync-1.2.6.1 lib/S3encoder.rb
moserp-s3sync-1.2.6 lib/S3encoder.rb
s3-sync-1.2.7 lib/s3sync/S3encoder.rb
s3-sync-1.2.6 lib/s3sync/S3encoder.rb
s3sync-1.2.5 lib/S3encoder.rb