class Vault8
Constants
- VERSION
Attributes
public_key[R]
secret_key[R]
service_url[R]
Public Class Methods
create!(public_key: , secret_key: , service_url:)
click to toggle source
# File lib/vault8.rb, line 7 def self.create!(public_key: , secret_key: , service_url:) self.new(public_key, secret_key, service_url) end
new(public_key, secret_key, service_url)
click to toggle source
# File lib/vault8.rb, line 11 def initialize(public_key, secret_key, service_url) @public_key = public_key @secret_key = secret_key @service_url = service_url end
Public Instance Methods
encode_token(path:, current_time: nil, until_time: nil)
click to toggle source
# File lib/vault8.rb, line 27 def encode_token(path:, current_time: nil, until_time: nil) Digest::SHA1.hexdigest([public_key, secret_key, path, current_time, until_time].compact.join('|')).reverse end
generate_url_for(path:, current_time: nil, until_time: nil)
click to toggle source
# File lib/vault8.rb, line 44 def generate_url_for(path:, current_time: nil, until_time: nil) uri = URI.join(service_url, path) uri.query = { p: public_key, s: encode_token(path: path, current_time: current_time, until_time: until_time), time: current_time, until: until_time }.reduce([]) {|acc, x| acc << "#{x.first}=#{x.last}" unless x.last.nil?; acc}.join('&') uri.to_s end
image_path(uid, filters=[], image_name='image.jpg')
click to toggle source
# File lib/vault8.rb, line 31 def image_path(uid, filters=[], image_name='image.jpg') '/' + [uid, merged_filters(filters), image_name].compact.join('/') end
image_url(uid:, filters: [], image_name: 'image.jpg', current_time: nil, until_time: nil)
click to toggle source
# File lib/vault8.rb, line 17 def image_url(uid:, filters: [], image_name: 'image.jpg', current_time: nil, until_time: nil) generate_url_for( path: image_path(uid, filters, image_name), current_time: (current_time && current_time.to_i), until_time: (until_time && until_time.to_i) ) end
merged_filters(filters=[])
click to toggle source
# File lib/vault8.rb, line 35 def merged_filters(filters=[]) return nil if filters.empty? filters.flat_map do |filter| filter.map do |k, v| [k, v.to_s.empty? ? nil : v].compact.join('-') end end.join(',') end
upload_url(path: '/upload', current_time: Time.current, until_time: Time.current + 86400)
click to toggle source
# File lib/vault8.rb, line 23 def upload_url(path: '/upload', current_time: Time.current, until_time: Time.current + 86400) generate_url_for(path: path, current_time: current_time, until_time: until_time) end