Module: GoogleUrlSignatures

Defined in:
lib/google_url_signatures.rb

Class Method Summary collapse

Class Method Details

.sign(key, url) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/google_url_signatures.rb', line 12

def self.sign(key, url)
  uri = URI.parse url

  path_and_query = uri.path + '?' + uri.query

  decoded_key = Base64.decode64(key.tr('-_','+/'))
  decoded_signature = (HMAC::SHA1.new(decoded_key) << path_and_query).digest
  signature = Base64.encode64(decoded_signature).tr('+/','-_')

  "#{uri.scheme}://#{uri.host}#{path_and_query}&signature=#{signature}"
end