class FilepickerRails::Policy
Attributes
call[RW]
expiry[RW]
handle[RW]
maxsize[RW]
minsize[RW]
path[RW]
Public Class Methods
apply(call = [:read, :convert], keys = ['policy', 'signature'])
click to toggle source
# File lib/filepicker_rails/policy.rb, line 22 def self.apply(call = [:read, :convert], keys = ['policy', 'signature']) return {} unless ::Rails.application.config.filepicker_rails.secret_key.present? grant = Policy.new grant.call = call { keys[0] => grant.policy, keys[1] => grant.signature } end
new(options = {})
click to toggle source
# File lib/filepicker_rails/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
policy()
click to toggle source
# File lib/filepicker_rails/policy.rb, line 14 def policy Base64.urlsafe_encode64(json_policy) end
signature()
click to toggle source
# File lib/filepicker_rails/policy.rb, line 18 def signature OpenSSL::HMAC.hexdigest('sha256', ::Rails.application.config.filepicker_rails.secret_key, policy) end
Private Instance Methods
json_policy()
click to toggle source
# File lib/filepicker_rails/policy.rb, line 33 def json_policy hash = Hash.new @expiry ||= ::Rails.application.config.filepicker_rails.expiry.call [:expiry, :call, :handle, :maxsize, :minsize, :path].each do |input| hash[input] = send(input) unless send(input).nil? end hash.to_json end