Changeset 964

Show
Ignore:
Timestamp:
12/24/07 22:09:47 (2 years ago)
Author:
vasi
Message:

bag printing

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • gdb-mi/trunk/lib/gdb/mi/bag.rb

    r956 r964  
    4141         
    4242        def to_set; to_uniq(Set) { |u, x| !u.add?(x) }; end 
     43         
     44        # Shamelessly stolen from Set's pretty_print 
     45        def pretty_print(pp) 
     46                pp.group(1, '#<Bag [', ']>') do 
     47                        pp.seplist(self) do |x| 
     48                                pp.pp x 
     49                        end 
     50                end 
     51        end 
     52        def inspect 
     53                '#<Bag [' + map { |x| x.inspect }.join(', ') + ']>' 
     54        end 
    4355end 
    4456 
     
    5163        def keys; map { |x| ikey(x) }; end 
    5264        def values; map { |x| ival(x) }; end 
     65        def each_pair; each { |k, v| yield(k, v) }; end 
    5366         
    5467        def to_hash; to_uniq(Hash) { |h, (k, v)| (pr, h[k] = h[k], v)[0] }; end 
     68        # Shamelessly stolen from pp_hash 
     69        def pretty_print(pp) 
     70                pp.group(1, '#<MultiMap: {', '}>') do 
     71                        pp.seplist(self, nil, :each_pair) do |k, v| 
     72                                pp.group do 
     73                                        pp.pp k 
     74                                        pp.text '=>' 
     75                                        pp.group(1) do 
     76                                                pp.breakable '' 
     77                                                pp.pp v 
     78                                        end 
     79                                end 
     80                        end 
     81                end 
     82        end 
     83        def inspect 
     84                '#<MultiMap {' + 
     85                        map { |k, v| k.inspect + '=>' + v.inspect }.join(', ') + '}>' 
     86        end 
    5587end 
    5688