Class: Infogram::Resources

Inherits:
Object
  • Object
show all
Defined in:
lib/infogram/resources.rb

Direct Known Subclasses

Infographics, Themes, Users

Instance Method Summary collapse

Instance Method Details

#decode_params(params) ⇒ Object



7
8
9
# File 'lib/infogram/resources.rb', line 7

def decode_params(params)
  params.keys.sort.map { |k| "#{k.to_s}=#{url_escaping(params[k].to_s)}" }.join('&')
end

#signature(method, path, params, config) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/infogram/resources.rb', line 11

def signature(method, path, params, config)
  string_to_sign = [
    method.upcase,
    url_escaping("#{config[:api_url]}/#{path}"),
    url_escaping(decode_params(params))
  ].compact.join('&')
  raw_hmac = OpenSSL::HMAC.digest('sha1', config[:api_secret], string_to_sign)
  Base64.encode64(raw_hmac)[0..-2]
end

#url_escaping(string) ⇒ Object



3
4
5
# File 'lib/infogram/resources.rb', line 3

def url_escaping(string)
  CGI.escape(string).gsub('+', '%20')
end