module StripeMock::Util
Public Class Methods
card_merge(old_param, new_param)
click to toggle source
# File lib/stripe_mock/util.rb, line 32 def self.card_merge(old_param, new_param) if new_param[:number] ||= old_param[:number] if new_param[:last4] new_param[:number] = new_param[:number][0..-5] + new_param[:last4] else new_param[:last4] = new_param[:number][-4..-1] end end old_param.merge(new_param) end
fingerprint(source)
click to toggle source
# File lib/stripe_mock/util.rb, line 28 def self.fingerprint(source) Digest::SHA1.base64digest(source).gsub(/[^a-z]/i, '')[0..15] end
rmerge(desh_hash, source_hash)
click to toggle source
# File lib/stripe_mock/util.rb, line 4 def self.rmerge(desh_hash, source_hash) return source_hash if desh_hash.nil? return nil if source_hash.nil? desh_hash.merge(source_hash) do |key, oldval, newval| if oldval.is_a?(Array) && newval.is_a?(Array) oldval.fill(nil, oldval.length...newval.length) oldval.zip(newval).map {|elems| if elems[1].nil? elems[0] elsif elems[1].is_a?(Hash) && elems[1].is_a?(Hash) rmerge(elems[0], elems[1]) else [elems[0], elems[1]].compact end }.flatten elsif oldval.is_a?(Hash) && newval.is_a?(Hash) rmerge(oldval, newval) else newval end end end