module Sailthru::Helpers
Public Instance Methods
extract_param_values(params)
click to toggle source
params:
params, Hash
returns:
Array, values of each item in the Hash (and nested hashes)
Extracts the values of a set of parameters, recursing into nested assoc arrays.
# File lib/sailthru/helpers.rb, line 11 def extract_param_values(params) values = [] params.each do |k, v| if v.is_a? Hash values.concat extract_param_values(v) elsif v.is_a? Array temp_hash = {} v.each_with_index do |v_,i_| temp_hash[i_.to_s] = v_ end values.concat extract_param_values(temp_hash) else values.push v.to_s end end return values end
flatten_nested_hash(hash, brackets = true)
click to toggle source
Flatten nested hash for GET / POST request.
# File lib/sailthru/helpers.rb, line 52 def flatten_nested_hash(hash, brackets = true) f = {} hash.each do |key, value| _key = brackets ? "[#{key}]" : key.to_s if value.class == Hash flatten_nested_hash(value).each do |k, v| f["#{_key}#{k}"] = v end elsif value.class == Array temp_hash = {} value.each_with_index do |v, i| temp_hash[i.to_s] = v end flatten_nested_hash(temp_hash).each do |k, v| f["#{_key}#{k}"] = v end else f[_key] = value end end return f end
get_signature_hash(params, secret)
click to toggle source
params:
params, Hash secret, String
returns:
String
Returns an MD5 hash of the signature string for an API call.
# File lib/sailthru/helpers.rb, line 47 def get_signature_hash(params, secret) Digest::MD5.hexdigest(get_signature_string(params, secret)).to_s end
get_signature_string(params, secret)
click to toggle source
params:
params, Hash secret, String
returns:
String
Returns the unhashed signature string (secret + sorted list of param values) for an API call.
# File lib/sailthru/helpers.rb, line 36 def get_signature_string(params, secret) return secret + extract_param_values(params).sort.join("") end