Class: Descriptions Private

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

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

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

Constructor Details

#initialize(descriptions) ⇒ Descriptions

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Create an actual instance.


31
32
33
# File 'Library/Homebrew/descriptions.rb', line 31

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. You should avoid using this method if possible, as it may be removed or be changed in the future.

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


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

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. You should avoid using this method if possible, as it may be removed or be changed in the future.

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


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

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