Sha256: 39a92fa0b598d555acd6668cd2b98e6350ee7c2c11b76816df1550d730660e95

Contents?: true

Size: 613 Bytes

Versions: 9

Compression:

Stored size: 613 Bytes

Contents

class FsUtils
  
  def self.querystring_from_hash(hash)
    params = hash.map do |k,v|
      k = k.to_s
      if v.is_a? Hash
        v.collect do |k2,v2|
          k2 = k2.to_s
          v2 = v2.to_s
          url_encode(v2)
          "#{k}.#{k2}=#{v2}"
        end.join('&')
      else
        v = v.to_s
        self.url_encode(v)
        k + '=' + v
      end
    end
    params.join('&')
  end
  
  private
  def self.url_encode(string)
    # Taken from http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/156044
    string.gsub!( /[^a-zA-Z0-9\-_\.!~*'()]/n ) {|x| sprintf('%%%02x', x[0]) }
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ruby-fs-stack-0.3.0 lib/ruby-fs-stack/fs_utils.rb
ruby-fs-stack-0.2.6 lib/ruby-fs-stack/fs_utils.rb
ruby-fs-stack-0.2.5 lib/ruby-fs-stack/fs_utils.rb
ruby-fs-stack-0.2.4 lib/ruby-fs-stack/fs_utils.rb
ruby-fs-stack-0.2.3 lib/ruby-fs-stack/fs_utils.rb
ruby-fs-stack-0.2.2 lib/ruby-fs-stack/fs_utils.rb
ruby-fs-stack-0.2.1 lib/ruby-fs-stack/fs_utils.rb
ruby-fs-stack-0.2.0 lib/ruby-fs-stack/fs_utils.rb
ruby-fs-stack-0.1.7 lib/ruby-fs-stack/fs_utils.rb