class Pickme::Policy
Attributes
call[RW]
expiry[RW]
handle[RW]
maxsize[RW]
minsize[RW]
path[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/pickme/policy.rb, line 8 def initialize(options = {}) [:expiry, :call, :handle, :maxsize, :minsize, :path].each do |input| send("#{input}=", options[input]) unless options[input].nil? end end
Public Instance Methods
apply(call = [:read, :convert], keys = ['policy', 'signature'])
click to toggle source
# File lib/pickme/policy.rb, line 22 def apply(call = [:read, :convert], keys = ['policy', 'signature']) raise SecretKeyMissing if Pickme.config.secret_key.nil? self.call = call { keys[0] => policy, keys[1] => signature } end
policy()
click to toggle source
# File lib/pickme/policy.rb, line 14 def policy Base64.urlsafe_encode64(json_policy) end
signature()
click to toggle source
# File lib/pickme/policy.rb, line 18 def signature OpenSSL::HMAC.hexdigest('sha256', Pickme.config.secret_key, policy) end
Private Instance Methods
json_policy()
click to toggle source
# File lib/pickme/policy.rb, line 33 def json_policy hash = Hash.new @expiry ||= Pickme.config.expiry.call [:expiry, :call, :handle, :maxsize, :minsize, :path].each do |input| hash[input] = send(input) unless send(input).nil? end MultiJson.dump(hash) end