Класс: AbstractTab Закрытый
- Наследует:
- Object
- Object
- AbstractTab
- Расширен модулями:
- Cachable, T::Generic, T::Helpers
- Определён в:
- tab.rb
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот класс, поскольку он может быть удалён или изменён без предупреждения.
Вместо прямого вызова new используйте один из методов класса, например Tab.create.
Краткое описание констант свернуть
- Cache =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
type_template { { fixed: T::Hash[T.any(Pathname, String), T.untyped] } }
- FILENAME =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
"INSTALL_RECEIPT.json"- RuntimeDependencies =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать эту константу, поскольку она может быть удалена или изменена без предупреждения.
T.type_alias do T.nilable(T.any(T::Array[String], T::Array[T::Hash[String, T.untyped]], T::Hash[String, T.untyped], T::Hash[Symbol, T.untyped])) end
Краткое описание атрибутов экземпляра свернуть
- #arch ⇒ String, ... закрытый
- #built_on ⇒ Hash{String => T.untyped}? закрытый
- #homebrew_version ⇒ String? закрытый
- #installed_on_request ⇒ Boolean внутренний
Проверяет, была ли формула или cask установлена по запросу.
- #loaded_from_api ⇒ Boolean? закрытый
- #loaded_from_internal_api ⇒ Boolean? закрытый
- #runtime_dependencies ⇒ RuntimeDependencies внутренний
Возвращает зависимости формулы или cask, необходимые во время выполнения.
- #source ⇒ Hash{String => T.untyped} закрытый
- #tabfile ⇒ Pathname? закрытый
- #time ⇒ Integer? закрытый
Краткое описание методов класса свернуть
- .create(formula_or_cask) ⇒ T.attached_class закрытый
Создаёт экземпляр Tab для новой установки формулы или cask.
- .empty ⇒ T.attached_class закрытый
- .from_file(path) ⇒ T.attached_class закрытый
Возвращает Tab для квитанции об установке формулы или cask по адресу
path. - .from_file_content(content, path) ⇒ T.attached_class закрытый
Как AbstractTab.from_file, но без использования кэша.
Краткое описание методов экземпляра свернуть
- #initialize(attributes = {}) ⇒ void конструктор закрытый
- #installed_on_request_present? ⇒ Boolean закрытый
- #parsed_homebrew_version ⇒ Version закрытый
- #tap ⇒ Tap? закрытый
- #tap=(tap) ⇒ void закрытый
- #write ⇒ void закрытый
Методы, включённые из Cachable
Подробное описание конструкторов
#initialize(attributes = {}) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Изменить атрибуты так, чтобы принимались только ключи-символы (стиль kwargs).
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | # File 'tab.rb', line 66 def initialize(attributes = {}) @installed_on_request = T.let(false, T::Boolean) @installed_on_request_present = T.let(false, T::Boolean) @homebrew_version = T.let(nil, T.nilable(String)) @tabfile = T.let(nil, T.nilable(Pathname)) @loaded_from_api = T.let(nil, T.nilable(T::Boolean)) @loaded_from_internal_api = T.let(nil, T.nilable(T::Boolean)) @time = T.let(nil, T.nilable(Integer)) @arch = T.let(nil, T.nilable(T.any(String, Symbol))) @source = T.let({}, T::Hash[String, T.untyped]) @built_on = T.let(nil, T.nilable(T::Hash[String, T.untyped])) @runtime_dependencies = T.let(nil, RuntimeDependencies) attributes.each do |key, value| case key.to_sym when :installed_on_request @installed_on_request = value.nil? ? false : value @installed_on_request_present = true when :changed_files @changed_files = T.let(value&.map { |f| Pathname(f) }, T.nilable(T::Array[Pathname])) else instance_variable_set(:"@#{key}", value) end end end |
Подробное описание атрибутов экземпляра
#arch ⇒ String, ...
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
50 51 52 | # File 'tab.rb', line 50 def arch @arch end |
#built_on ⇒ Hash{String => T.untyped}?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
56 57 58 | # File 'tab.rb', line 56 def built_on @built_on end |
#homebrew_version ⇒ String?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
35 36 37 | # File 'tab.rb', line 35 def homebrew_version @homebrew_version end |
#installed_on_request ⇒ Boolean
Этот метод является частью внутреннего API. Этот метод можно использовать только внутри репозиториев, принадлежащих Homebrew, за исключением casks и формул. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Проверяет, была ли формула или cask установлена по запросу.
32 33 34 | # File 'tab.rb', line 32 def installed_on_request @installed_on_request end |
#loaded_from_api ⇒ Boolean?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
41 42 43 | # File 'tab.rb', line 41 def loaded_from_api @loaded_from_api end |
#loaded_from_internal_api ⇒ Boolean?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
44 45 46 | # File 'tab.rb', line 44 def loaded_from_internal_api @loaded_from_internal_api end |
#runtime_dependencies ⇒ RuntimeDependencies
Этот метод является частью внутреннего API. Этот метод можно использовать только внутри репозиториев, принадлежащих Homebrew, за исключением casks и формул. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Возвращает зависимости формулы или cask, необходимые во время выполнения.
62 63 64 | # File 'tab.rb', line 62 def runtime_dependencies @runtime_dependencies end |
#source ⇒ Hash{String => T.untyped}
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
53 54 55 | # File 'tab.rb', line 53 def source @source end |
#tabfile ⇒ Pathname?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
38 39 40 | # File 'tab.rb', line 38 def tabfile @tabfile end |
#time ⇒ Integer?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
47 48 49 | # File 'tab.rb', line 47 def time @time end |
Подробное описание методов класса
.create(formula_or_cask) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Создаёт экземпляр Tab для новой установки формулы или cask.
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | # File 'tab.rb', line 94 def self.create(formula_or_cask) attributes = { "homebrew_version" => HOMEBREW_VERSION, "installed_on_request" => false, "loaded_from_api" => formula_or_cask.loaded_from_api?, "loaded_from_internal_api" => formula_or_cask.loaded_from_internal_api?, "time" => Time.now.to_i, "arch" => Hardware::CPU.arch, "source" => { "tap" => formula_or_cask.tap&.name, "tap_git_head" => formula_or_cask.tap_git_head, }, "built_on" => DevelopmentTools.build_system_info, } new(attributes) end |
.empty ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | # File 'tab.rb', line 139 def self.empty attributes = { "homebrew_version" => HOMEBREW_VERSION, "installed_on_request" => false, "loaded_from_api" => false, "loaded_from_internal_api" => false, "time" => nil, "runtime_dependencies" => nil, "arch" => nil, "source" => { "path" => nil, "tap" => nil, "tap_git_head" => nil, }, "built_on" => DevelopmentTools.build_system_info, } new(attributes) end |
.from_file(path) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Результаты кэшируются.
Возвращает Tab для квитанции об установке формулы или cask по адресу path.
116 117 118 119 120 121 122 123 | # File 'tab.rb', line 116 def self.from_file(path) cache.fetch(path) do |p| content = File.read(p) return empty if content.blank? cache[p] = from_file_content(content, p) end end |
.from_file_content(content, path) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Как from_file, но без использования кэша.
127 128 129 130 131 132 133 134 135 136 | # File 'tab.rb', line 127 def self.from_file_content(content, path) attributes = begin JSON.parse(content) rescue JSON::ParserError => e raise e, "Cannot parse #{path}: #{e}", e.backtrace end attributes["tabfile"] = path new(attributes) end |
Подробное описание методов экземпляра
#installed_on_request_present? ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
182 | # File 'tab.rb', line 182 def installed_on_request_present? = @installed_on_request_present |
#parsed_homebrew_version ⇒ Version
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
174 175 176 177 178 179 | # File 'tab.rb', line 174 def parsed_homebrew_version homebrew_version = self.homebrew_version return Version::NULL if homebrew_version.nil? Version.new(homebrew_version) end |
#tap ⇒ Tap?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
185 186 187 188 | # File 'tab.rb', line 185 def tap tap_name = source["tap"] Tap.fetch(tap_name) if tap_name end |
#tap=(tap) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Этот метод не возвращает определённого значения.
191 192 193 194 | # File 'tab.rb', line 191 def tap=(tap) tap_name = tap.is_a?(Tap) ? tap.name : tap source["tap"] = tap_name end |
#write ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Этот метод не возвращает определённого значения.
197 198 199 200 201 202 203 | # File 'tab.rb', line 197 def write tfile = tabfile raise "No tabfile to write to" unless tfile self.class.cache[tfile] = self tfile.atomic_write(to_json) end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/AbstractTab.html