Класс: Debrew::Menu Приватный
- Наследует:
- Object
- Object
- Debrew::Menu
- Определён в:
- debrew.rb
Обзор
Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого класса, так как он может быть удалён или изменён без предупреждения.
Модуль для отображения меню отладки.
Определено в пространстве имён
Классы: Entry
Краткое описание атрибутов экземпляра свернуть
- #entries ⇒ Array<Entry> приватный
- #prompt ⇒ String? приватный
Краткое описание методов класса свернуть
- .choose(&_block) {|menu| ... } ⇒ void приватный
Краткое описание методов экземпляра свернуть
- #choice(name, &action) ⇒ void приватный
- #initialize ⇒ void конструктор приватный
Подробное описание конструкторов
#initialize ⇒ void
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
43 44 45 | # File 'debrew.rb', line 43 def initialize @entries = T.let([], T::Array[Entry]) end |
Подробное описание атрибутов экземпляра
#entries ⇒ Array<Entry>
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
40 41 42 | # File 'debrew.rb', line 40 def entries @entries end |
#prompt ⇒ String?
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
37 38 39 | # File 'debrew.rb', line 37 def prompt @prompt end |
Подробное описание методов класса
.choose(&_block) {|menu| ... } ⇒ void
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод не возвращает определённого значения.
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | # File 'debrew.rb', line 53 def self.choose(&_block) = new yield choice = T.let(nil, T.nilable(Entry)) while choice.nil? .entries.each_with_index { |e, i| puts "#{i + 1}. #{e.name}" } print .prompt unless .prompt.nil? input = $stdin.gets || exit input.chomp! i = input.to_i if i.positive? choice = .entries[i - 1] else possible = .entries.select { |e| e.name.start_with?(input) } case possible.size when 0 then puts "No such option" when 1 then choice = possible.first else puts "Multiple options match: #{possible.map(&:name).join("")}" end end end choice.action.call end |
Подробное описание методов экземпляра
#choice(name, &action) ⇒ void
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Этот метод не возвращает определённого значения.
48 49 50 | # File 'debrew.rb', line 48 def choice(name, &action) entries << Entry.new(name: name.to_s, action:) end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Debrew/Menu.html