module AWS::Core::UriEscape

def escape value

def escape value
  value = value.encode("UTF-8") if
    value.respond_to?(:encode)
  CGI::escape(value.to_s).gsub('+', '%20')
end

def escape_path value

def escape_path value
  escaped = ""
  value.scan(%r{(/*)([^/]*)(/*)}) do |(leading, part, trailing)|
    escaped << leading + escape(part) + trailing
  end
  escaped
end