Sha256: a5efc743e1aae08b45a6a3ce06498538f7ddd78424c34e67f11737b7f624500a

Contents?: true

Size: 561 Bytes

Versions: 1

Compression:

Stored size: 561 Bytes

Contents

require 'rack/utils'
require 'uri'

module Vinz
  class Url
    def initialize(uri, crypto)
      @uri = uri.is_a?(String) ? URI.parse(uri) : uri
      @crypto = crypto
      @param_key = '_creq'
    end

    def pack(message)
      uri = @uri.clone
      query = Rack::Utils.parse_nested_query(uri.query)
      query[@param_key] = @crypto.encode(message)
      uri.query = Rack::Utils.build_nested_query(query)
      uri
    end

    def unpack
      query = Rack::Utils.parse_nested_query(@uri.query)
      @crypto.decode(query[@param_key])
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vinz-1.1.7 lib/vinz/url.rb