class RemiSigner

Constants

VERSION

Attributes

secret[R]

Public Class Methods

new(secret) click to toggle source
# File lib/remi-signer.rb, line 6
def initialize(secret)
  @secret = secret
end
stringize(object) click to toggle source
# File lib/remi-signer.rb, line 15
def self.stringize(object)
  case object
  when Hash
    keys = object.keys.sort_by(&:to_s)
    keys.map{|k| "#{k}=#{stringize(object[k])}"}.join('&')
  when Array
    if object.empty?
      nil
    else
      object.map{|v| "#{stringize(v)}"}.join(',')
    end
  else
    object
  end
end

Public Instance Methods

sign(params) click to toggle source
# File lib/remi-signer.rb, line 10
def sign(params)
  hmac = OpenSSL::HMAC.new(secret, OpenSSL::Digest::SHA512.new)
  hmac.update(self.class.stringize params).to_s
end