Module: StripeMock::Util
- Defined in:
- lib/stripe_mock/util.rb
Class Method Summary collapse
- .card_merge(old_param, new_param) ⇒ Object
- .fingerprint(source) ⇒ Object
- .rmerge(desh_hash, source_hash) ⇒ Object
Class Method Details
.card_merge(old_param, new_param) ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/stripe_mock/util.rb', line 26 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) ⇒ Object
22 23 24 |
# File 'lib/stripe_mock/util.rb', line 22 def self.fingerprint(source) Digest::SHA1.base64digest(source).gsub(/[^a-z]/i, '')[0..15] end |
.rmerge(desh_hash, source_hash) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# 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| elems[1].nil? ? elems[0] : rmerge(elems[0], elems[1]) } elsif oldval.is_a?(Hash) && newval.is_a?(Hash) rmerge(oldval, newval) else newval end end end |