Class: UrlStore::CompactEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/url_store/compact_encoder.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ CompactEncoder

Returns a new instance of CompactEncoder.



7
8
9
10
11
# File 'lib/url_store/compact_encoder.rb', line 7

def initialize(options={})
  @secret = options[:secret] || raise('i need a :secret !!')
  @hasher = options[:hasher] || 'SHA1'
  @serializer = options[:serializer] || :marshal
end

Instance Method Details

#decode(data) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/url_store/compact_encoder.rb', line 18

def decode(data)
  hash = data[-hash_length..-1]
  data = data[0...-hash_length]

  if digest(data) == hash
    deserialize extract(data)
  else
    nil
  end
end

#encode(data) ⇒ Object



13
14
15
16
# File 'lib/url_store/compact_encoder.rb', line 13

def encode(data)
  data = compress(serialize(data))
  data+digest(data)
end