Class: Dyna::Utils
- Inherits:
-
Object
- Object
- Dyna::Utils
- Defined in:
- lib/dyna/utils.rb
Class Method Summary collapse
Class Method Details
.diff(obj1, obj2, options = {}) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/dyna/utils.rb', line 35 def diff(obj1, obj2, = {}) diffy = Diffy::Diff.new( obj1.pretty_inspect, obj2.pretty_inspect, :diff => '-u' ) out = diffy.to_s([:color] ? :color : :text).gsub(/\s+\z/m, '') out.gsub!(/^/, [:indent]) if [:indent] out end |
.normalize_hash(hash) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/dyna/utils.rb', line 4 def normalize_hash(hash) hash.dup.each do |k, v| if v.kind_of?(Array) if v.first.kind_of?(Hash) hash[k] = v.map { |o| normalize_hash(o) } elsif v.first.respond_to?(:to_h) hash[k] = v.map { |o| normalize_hash(o.to_h) } else v.sort! end elsif v.respond_to?(:to_h) hash[k] = normalize_hash(v.to_h) end end sort_keys(hash) end |
.sort_keys(hash) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/dyna/utils.rb', line 21 def sort_keys(hash) hash = Hash[hash.sort] hash.each do |k, v| if v.kind_of?(Array) if v.first.kind_of?(Hash) hash[k] = v.map { |h| sort_keys(h) } end elsif v.kind_of?(Hash) hash[k] = sort_keys(v) end end hash end |