class Refcode::Encoder

Attributes

salt[RW]
secret[RW]

Public Class Methods

new() { |self| ... } click to toggle source
# File lib/refcode/encoder.rb, line 7
def initialize
  yield self if block_given?
end

Public Instance Methods

decode(val) click to toggle source
# File lib/refcode/encoder.rb, line 13
def decode val
  YAML.load(decrypt(Base64URL.decode(val)))
end
encode(val) click to toggle source
# File lib/refcode/encoder.rb, line 10
def encode val
  Base64URL.encode(encrypt(YAML.dump(val)))
end
secret=(secret) click to toggle source
# File lib/refcode/encoder.rb, line 16
def secret= secret
  secret = secret * 2 until secret.size >= 32
  @secret = secret
end

Private Instance Methods

decrypt(val) click to toggle source
# File lib/refcode/encoder.rb, line 26
def decrypt val
  Encryptor.decrypt(:value => val, :key => @secret, :salt => @salt, :iv => iv)
end
encrypt(val) click to toggle source
# File lib/refcode/encoder.rb, line 23
def encrypt val
  Encryptor.encrypt(:value => val, :key => @secret, :salt => @salt, :iv => iv)
end
iv() click to toggle source
# File lib/refcode/encoder.rb, line 29
def iv
  [@secret, @salt, 42].join
end