class LZString::UriSafe

Constants

KEY_STR_URISAFE

Base64 alphabet.

Public Class Methods

compress(input) click to toggle source

@param input [String]

# File lib/lz_string/urisafe.rb, line 7
def self.compress(input)
  return "" if input.nil?

  LZString::Base.compress(input, 6, lambda { |a| KEY_STR_URISAFE[a] })
end
decompress(compressed) click to toggle source

@param compressed [String]

# File lib/lz_string/urisafe.rb, line 14
def self.decompress(compressed)
  return "" if compressed.nil?
  return nil if compressed == ""
  compressed.gsub!(" ","+")
  LZString::Base.decompress(
    compressed.length,
    32,
    lambda { |index| get_base_value(KEY_STR_URISAFE, compressed[index]) }
  )
end

Private Class Methods

get_base_value(alphabet, character) click to toggle source

@param alphabet [String] @param character [String]

# File lib/lz_string/urisafe.rb, line 27
def self.get_base_value(alphabet, character)
  base_reverse_dic = {}

  if (!base_reverse_dic[alphabet])
    base_reverse_dic[alphabet] = {}
    for i in 0...alphabet.length do
      base_reverse_dic[alphabet][alphabet[i]] = i
    end
  end

  base_reverse_dic[alphabet][character]
end