diff options
| author | Josh Hagins | 2016-04-11 17:09:40 -0400 | 
|---|---|---|
| committer | Baptiste Fontaine | 2016-04-16 16:14:15 +0200 | 
| commit | abff8a0cc8d7c8fd1fb111f383fc756de08b0878 (patch) | |
| tree | 47e6508908de14ffd7db2a1d6fe9052539c0c645 /Library/Homebrew/descriptions.rb | |
| parent | a8be17df575e829b5bd37927ea5bfc0601cf6f49 (diff) | |
| download | brew-abff8a0cc8d7c8fd1fb111f383fc756de08b0878.tar.bz2 | |
desc: print short name unless multiple formulae have the same name
Diffstat (limited to 'Library/Homebrew/descriptions.rb')
| -rw-r--r-- | Library/Homebrew/descriptions.rb | 20 | 
1 files changed, 17 insertions, 3 deletions
| diff --git a/Library/Homebrew/descriptions.rb b/Library/Homebrew/descriptions.rb index 85d2812f3..0d36782cf 100644 --- a/Library/Homebrew/descriptions.rb +++ b/Library/Homebrew/descriptions.rb @@ -1,3 +1,4 @@ +require "set"  require "formula"  require "formula_versions" @@ -123,9 +124,22 @@ class Descriptions    # print them.    def print      blank = "#{Tty.yellow}[no description]#{Tty.reset}" -    @descriptions.keys.sort.each do |name| -      description = @descriptions[name] || blank -      puts "#{Tty.white}#{name}:#{Tty.reset} #{description}" +    @descriptions.keys.sort.each do |full_name| +      short_name = short_names[full_name] +      printed_name = short_name_counts[short_name] == 1 ? short_name : full_name +      description = @descriptions[full_name] || blank +      puts "#{Tty.white}#{printed_name}:#{Tty.reset} #{description}"      end    end + +  private + +  def short_names +    @short_names ||= Hash[@descriptions.keys.map { |k| [k, k.split("/").last] }] +  end + +  def short_name_counts +    @short_name_counts ||= +      short_names.values.reduce(Hash.new(0)) { |counts, name| counts[name] += 1; counts } +  end  end | 
