module Paggio::Utils
Public Class Methods
deep_merge(a, b)
click to toggle source
# File lib/paggio/utils.rb, line 20 def self.deep_merge(a, b) merger = proc {|key, v1, v2| if Hash === v1 && Hash === v2 v1.merge(v2, &merger) else v2 end } a.merge(b, &merger) end
deep_merge!(a, b)
click to toggle source
# File lib/paggio/utils.rb, line 32 def self.deep_merge!(a, b) merger = proc {|key, v1, v2| if Hash === v1 && Hash === v2 v1.merge!(v2, &merger) v1 else v2 end } a.merge!(b, &merger) end
heredoc(string)
click to toggle source
# File lib/paggio/utils.rb, line 14 def self.heredoc(string) indent = string.scan(/^[ \t]*(?=\S)/).min.size rescue 0 string.gsub(/^[ \t]{#{indent}}/, '') end