class Params::Decoder

Attributes

hash[R]
params[R]

Public Class Methods

new(*args) click to toggle source
# File lib/params/decoder.rb, line 7
def initialize *args
        raise "Decoder needs params to encode" if !args || args.empty?
        args = args.flatten
        options      = args.last
        if options.kind_of? Hash                     
                @crypter    = options.delete(:crypter) if options                             
        end

        @params = args.first
end

Public Instance Methods

as_clean_hash(mode = :str) click to toggle source
# File lib/params/decoder.rb, line 29
def as_clean_hash mode = :str
        clean_params(as_hash mode)
end
as_hash(mode = :str) click to toggle source

fx decoder.as_hash returns value of a

# File lib/params/decoder.rb, line 19
def as_hash mode = :str                       
        @hash ||= Hash[decoded.split('&').collect{|p| p.split("=")}]
        case mode
        when :sym
                Hash[hash.map{ |k, v| [k.to_sym, v] }]
        else
                hash
        end
end
decoded() click to toggle source

decode in reverse order!

# File lib/params/decoder.rb, line 34
def decoded
        @decoded ||= use_crypter? ? crypter.decrypt(decoded_params) : decoded_params
end

Protected Instance Methods

crypter() click to toggle source
# File lib/params/decoder.rb, line 44
def crypter
        Crypter.instance if crypter?
end
decoded_params() click to toggle source
# File lib/params/decoder.rb, line 40
def decoded_params
        Base64.decode64(params)
end