Class: Descriptions Private

Inherits:
Object
  • Object
show all
Extended by:
Homebrew::Search
Defined in:
descriptions.rb

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

Helper class for printing and searching descriptions.

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Homebrew::Search

query_regexp, search_casks, search_descriptions, search_formulae, search_taps

Methods included from Homebrew::Search::Extension

#search_casks, #search_descriptions

Constructor Details

#initialize(descriptions) ⇒ Descriptions

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Create an actual instance.



32
33
34
# File 'descriptions.rb', line 32

def initialize(descriptions)
  @descriptions = descriptions
end

Class Method Details

.search(string_or_regex, field, cache_store) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Given a regex, find all formulae whose specified fields contain a match.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'descriptions.rb', line 16

def self.search(string_or_regex, field, cache_store)
  cache_store.populate_if_empty!

  results = case field
  when :name
    cache_store.search(string_or_regex) { |name, _| name }
  when :desc
    cache_store.search(string_or_regex) { |_, desc| desc }
  when :either
    cache_store.search(string_or_regex)
  end

  new(results)
end

Instance Method Details

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Take search results – a hash mapping formula names to descriptions – and print them.



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'descriptions.rb', line 38

def print
  blank = Formatter.warning("[no description]")
  @descriptions.keys.sort.each do |full_name|
    short_name = short_names[full_name]
    printed_name = if short_name_counts[short_name] == 1
      short_name
    else
      full_name
    end
    description = @descriptions[full_name] || blank
    puts "#{Tty.bold}#{printed_name}:#{Tty.reset} #{description}"
  end
end