Module: Ridgepole::Ext::PpSortHash

Defined in:
lib/ridgepole/ext/pp_sort_hash.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extend_if_hash(obj) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/ridgepole/ext/pp_sort_hash.rb', line 23

def self.extend_if_hash(obj)
  if obj.is_a?(Hash)
    obj = obj.dup
    obj.extend(self)
  end

  obj
end

Instance Method Details

#pretty_print(pp_obj) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/ridgepole/ext/pp_sort_hash.rb', line 6

def pretty_print(pp_obj)
  pp_obj.group(1, '{', '}') do
    pp_obj.seplist(sort_by { |k, _| k.to_s }, nil, :each) do |k, v|
      v = PpSortHash.extend_if_hash(v)

      pp_obj.group do
        pp_obj.pp k
        pp_obj.text '=>'
        pp_obj.group(1) do
          pp_obj.breakable ''
          pp_obj.pp v
        end
      end
    end
  end
end