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



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

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

  obj
end

Instance Method Details

#pretty_print(q) ⇒ Object



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

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

      q.group {
        q.pp k
        q.text '=>'
        q.group(1) {
          q.breakable ''
          q.pp v
        }
      }
    }
  }
end