Класс: Keg::Relocation Закрытый
- Наследует:
- Object
- Object
- Keg::Relocation
- Определён в:
- keg_relocate.rb
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Краткое описание констант свернуть
- RELOCATABLE_PATH_REGEX_PREFIX =
Эта константа является частью закрытого API. Эту константу можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
/(?:(?<=-F|-I|-L|-isystem)|(?<![a-zA-Z0-9]))/
Краткое описание методов класса свернуть
- .path_to_regex(path) ⇒ Regexp закрытый
Краткое описание методов экземпляра свернуть
- #add_replacement_pair(key, old_value, new_value, path: false) ⇒ void закрытый
- #freeze ⇒ Relocation закрытый
- #initialize ⇒ void конструктор закрытый
- #replace_text!(text) ⇒ Boolean закрытый
- #replacement_pair_for(key) ⇒ Array<([String, Regexp], String)> закрытый
Подробное описание конструкторов
#initialize ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
22 23 24 | # File 'keg_relocate.rb', line 22 def initialize @replacement_map = T.let({}, T::Hash[Symbol, [T.any(String, Regexp), String]]) end |
Подробное описание методов класса
.path_to_regex(path) ⇒ Regexp
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
60 61 62 63 64 65 66 67 68 | # File 'keg_relocate.rb', line 60 def self.path_to_regex(path) path = case path when String Regexp.escape(path) when Regexp path.source end Regexp.new(RELOCATABLE_PATH_REGEX_PREFIX.source + path) end |
Подробное описание методов экземпляра
#add_replacement_pair(key, old_value, new_value, path: false) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Этот метод не возвращает определённого значения.
33 34 35 36 | # File 'keg_relocate.rb', line 33 def add_replacement_pair(key, old_value, new_value, path: false) old_value = self.class.path_to_regex(old_value) if path @replacement_map[key] = [old_value, new_value] end |
#freeze ⇒ Relocation
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
27 28 29 30 | # File 'keg_relocate.rb', line 27 def freeze @replacement_map.freeze super end |
#replace_text!(text) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # File 'keg_relocate.rb', line 44 def replace_text!(text) replacements = @replacement_map.values.to_h sorted_keys = replacements.keys.sort_by do |key| key.is_a?(String) ? key.length : 999 end.reverse any_changed = T.let(nil, T.nilable(String)) sorted_keys.each do |key| changed = text.gsub!(key, replacements.fetch(key)) any_changed ||= changed end !any_changed.nil? end |
#replacement_pair_for(key) ⇒ Array<([String, Regexp], String)>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
39 40 41 | # File 'keg_relocate.rb', line 39 def replacement_pair_for(key) @replacement_map.fetch(key) end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Keg/Relocation.html