Класс: Cask::Config
- Наследует:
- Object
- Object
- Cask::Config
- Определён в:
- cask/config.rb,
sorbet/rbi/dsl/cask/config.rbi
Обзор
Этот класс является частью внутреннего API. Этот класс разрешено использовать только внутри репозиториев, принадлежащих Homebrew, за исключением cask-файлов и формул. Сторонним разработчикам следует по возможности избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Конфигурация для установки cask-файлов.
Краткое описание констант свернуть
- ConfigHash =
Эта константа является частью внутреннего API. Эту константу разрешено использовать только внутри репозиториев, принадлежащих Homebrew, за исключением cask-файлов и формул. Сторонним разработчикам следует по возможности избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
T.type_alias { T::Hash[Symbol, T.any(LazyObject, String, Pathname, T::Array[String])] }
- DEFAULT_DIRS =
Эта константа является частью внутреннего API. Эту константу разрешено использовать только внутри репозиториев, принадлежащих Homebrew, за исключением cask-файлов и формул. Сторонним разработчикам следует по возможности избегать использования этой константы, поскольку она может быть удалена или изменена без предупреждения.
T.let( { appdir: "/Applications", appimagedir: "~/Applications", keyboard_layoutdir: "/Library/Keyboard Layouts", colorpickerdir: "~/Library/ColorPickers", prefpanedir: "~/Library/PreferencePanes", qlplugindir: "~/Library/QuickLook", mdimporterdir: "~/Library/Spotlight", dictionarydir: "~/Library/Dictionaries", fontdir: "~/Library/Fonts", servicedir: "~/Library/Services", input_methoddir: "~/Library/Input Methods", internet_plugindir: "~/Library/Internet Plug-Ins", audio_unit_plugindir: "~/Library/Audio/Plug-Ins/Components", vst_plugindir: "~/Library/Audio/Plug-Ins/VST", vst3_plugindir: "~/Library/Audio/Plug-Ins/VST3", screen_saverdir: "~/Library/Screen Savers", }.freeze, T::Hash[Symbol, String], )
Краткое описание атрибутов экземпляра свернуть
- #explicit ⇒ ConfigHash внутренний
Получить явную конфигурацию.
Краткое описание методов класса свернуть
- .canonicalize(config) ⇒ ConfigHash закрытый
Рекурсивное вычисление во время выполнения заставляет вычислить LazyObject.
- .defaults ⇒ Hash{Symbol => LazyObject, String} закрытый
Рекурсивное вычисление во время выполнения заставляет вычислить LazyObject.
- .from_args(args) ⇒ T.attached_class закрытый
- .from_json(json, ignore_invalid_keys: false) ⇒ T.attached_class закрытый
Краткое описание методов экземпляра свернуть
- #appdir ⇒ String закрытый
- #appimagedir ⇒ String закрытый
- #audio_unit_plugindir ⇒ String закрытый
- #bash_completion ⇒ Pathname закрытый
- #binarydir ⇒ Pathname закрытый
- #colorpickerdir ⇒ String закрытый
- #default ⇒ ConfigHash закрытый
Рекурсивное вычисление во время выполнения заставляет вычислить LazyObject.
- #dictionarydir ⇒ String закрытый
- #env ⇒ ConfigHash закрытый
- #fish_completion ⇒ Pathname закрытый
- #fontdir ⇒ String закрытый
- #initialize(default: nil, env: nil, explicit: {}, ignore_invalid_keys: false) ⇒ void конструктор закрытый
- #input_methoddir ⇒ String закрытый
- #internet_plugindir ⇒ String закрытый
- #keyboard_layoutdir ⇒ String закрытый
- #languages ⇒ Array<String> закрытый
- #languages=(languages) ⇒ void закрытый
- #manpagedir ⇒ Pathname закрытый
- #mdimporterdir ⇒ String закрытый
- #merge(other) ⇒ T.self_type закрытый
- #prefpanedir ⇒ String закрытый
- #qlplugindir ⇒ String закрытый
- #screen_saverdir ⇒ String закрытый
- #servicedir ⇒ String закрытый
- #to_json(*options) ⇒ String закрытый
- #vst3_plugindir ⇒ String закрытый
- #vst_plugindir ⇒ String закрытый
- #zsh_completion ⇒ Pathname закрытый
Подробное описание конструкторов
#initialize(default: nil, env: nil, explicit: {}, ignore_invalid_keys: false) ⇒ void
Этот метод является частью закрытого API. Этот метод разрешено использовать только в репозитории Homebrew/brew. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | # File 'cask/config.rb', line 112 def initialize(default: nil, env: nil, explicit: {}, ignore_invalid_keys: false) if default @default = T.let( self.class.canonicalize(self.class.defaults.merge(default)), T.nilable(ConfigHash), ) end if env @env = T.let( self.class.canonicalize(env), T.nilable(ConfigHash), ) end @explicit = T.let( self.class.canonicalize(explicit), ConfigHash, ) if ignore_invalid_keys @env&.delete_if { |key, _| self.class.defaults.keys.exclude?(key) } @explicit.delete_if { |key, _| self.class.defaults.keys.exclude?(key) } return end @env&.assert_valid_keys(*self.class.defaults.keys) @explicit.assert_valid_keys(*self.class.defaults.keys) end |
Подробное описание атрибутов экземпляра
#explicit ⇒ ConfigHash
Этот метод является частью внутреннего API. Этот метод разрешено использовать только внутри репозиториев, принадлежащих Homebrew, за исключением cask-файлов и формул. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
Получить явную конфигурацию.
102 103 104 | # File 'cask/config.rb', line 102 def explicit @explicit end |
Подробное описание методов класса
.canonicalize(config) ⇒ ConfigHash
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Рекурсивное вычисление во время выполнения заставляет вычислить LazyObject
86 87 88 89 90 91 92 93 94 95 96 | # File 'cask/config.rb', line 86 def self.canonicalize(config) config.to_h do |k, v| if DEFAULT_DIRS.key?(k) raise TypeError, "Invalid path for default dir #{k}: #{v.inspect}" if v.is_a?(Array) [k, Pathname(v.to_s).] else [k, v] end end end |
.defaults ⇒ Hash{Symbol => LazyObject, String}
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
Рекурсивное вычисление во время выполнения заставляет вычислить LazyObject
40 41 42 43 44 | # File 'cask/config.rb', line 40 def self.defaults { languages: LazyObject.new { ::OS::Mac.languages }, }.merge(DEFAULT_DIRS).freeze end |
.from_args(args) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | # File 'cask/config.rb', line 47 def self.from_args(args) # FIXME: T.unsafe is a workaround for methods that are only defined when `cask_options` # is invoked on the parser. (These could be captured by a DSL compiler instead.) args = T.unsafe(args) new(explicit: { appdir: args.appdir, appimagedir: args.appimagedir, keyboard_layoutdir: args.keyboard_layoutdir, colorpickerdir: args.colorpickerdir, prefpanedir: args.prefpanedir, qlplugindir: args.qlplugindir, mdimporterdir: args.mdimporterdir, dictionarydir: args.dictionarydir, fontdir: args.fontdir, servicedir: args.servicedir, input_methoddir: args.input_methoddir, internet_plugindir: args.internet_plugindir, audio_unit_plugindir: args.audio_unit_plugindir, vst_plugindir: args.vst_plugindir, vst3_plugindir: args.vst3_plugindir, screen_saverdir: args.screen_saverdir, languages: args.language, }.compact) end |
.from_json(json, ignore_invalid_keys: false) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.
73 74 75 76 77 78 79 80 81 82 | # File 'cask/config.rb', line 73 def self.from_json(json, ignore_invalid_keys: false) config = JSON.parse(json, symbolize_names: true) new( default: config.fetch(:default, {}), env: config.fetch(:env, {}), explicit: config.fetch(:explicit, {}), ignore_invalid_keys:, ) end |
Подробное описание методов экземпляра
#appdir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
11 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 11 def appdir; end |
#appimagedir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
14 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 14 def appimagedir; end |
#audio_unit_plugindir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
17 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 17 def audio_unit_plugindir; end |
#bash_completion ⇒ Pathname
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
176 177 178 | # File 'cask/config.rb', line 176 def bash_completion @bash_completion ||= T.let(HOMEBREW_PREFIX/"etc/bash_completion.d", T.nilable(Pathname)) end |
#binarydir ⇒ Pathname
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
166 167 168 | # File 'cask/config.rb', line 166 def binarydir @binarydir ||= T.let(HOMEBREW_PREFIX/"bin", T.nilable(Pathname)) end |
#colorpickerdir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
20 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 20 def colorpickerdir; end |
#default ⇒ ConfigHash
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Рекурсивное вычисление во время выполнения приводит к вычислению LazyObject
142 143 144 | # File 'cask/config.rb', line 142 def default @default ||= self.class.canonicalize(self.class.defaults) end |
#dictionarydir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
23 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 23 def dictionarydir; end |
#env ⇒ ConfigHash
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | # File 'cask/config.rb', line 147 def env @env ||= self.class.canonicalize( Homebrew::EnvConfig.cask_opts .select { |arg| arg.include?("=") } .map { |arg| T.cast(arg.split("=", 2), [String, String]) } .to_h do |(flag, value)| key = flag.sub(/^--/, "") # converts --language flag to :languages config key if key == "language" key = "languages" value = value.split(",") end [key.to_sym, value] end, ) end |
#fish_completion ⇒ Pathname
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
186 187 188 | # File 'cask/config.rb', line 186 def fish_completion @fish_completion ||= T.let(HOMEBREW_PREFIX/"share/fish/vendor_completions.d", T.nilable(Pathname)) end |
#fontdir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
26 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 26 def fontdir; end |
#input_methoddir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
29 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 29 def input_methoddir; end |
#internet_plugindir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
32 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 32 def internet_plugindir; end |
#keyboard_layoutdir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
35 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 35 def keyboard_layoutdir; end |
#languages ⇒ Array<String>
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
191 192 193 194 195 196 197 198 199 200 201 202 203 | # File 'cask/config.rb', line 191 def languages [ *explicit.fetch(:languages, []), *env.fetch(:languages, []), *default.fetch(:languages, []), ].uniq.select do |lang| # Ensure all languages are valid. Locale.parse(lang) true rescue Locale::ParserError false end end |
#languages=(languages) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.
Этот метод возвращает неопределённое значение.
206 207 208 | # File 'cask/config.rb', line 206 def languages=(languages) explicit[:languages] = languages end |
#manpagedir ⇒ Pathname
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
171 172 173 | # File 'cask/config.rb', line 171 def manpagedir @manpagedir ||= T.let(HOMEBREW_PREFIX/"share/man", T.nilable(Pathname)) end |
#mdimporterdir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
41 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 41 def mdimporterdir; end |
#merge(other) ⇒ T.self_type
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
223 224 225 | # File 'cask/config.rb', line 223 def merge(other) self.class.new(explicit: other.explicit.merge(explicit)) end |
#prefpanedir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
44 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 44 def prefpanedir; end |
#qlplugindir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
47 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 47 def qlplugindir; end |
#screen_saverdir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
50 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 50 def screen_saverdir; end |
#servicedir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
53 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 53 def servicedir; end |
#to_json(*options) ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
228 229 230 231 232 233 234 | # File 'cask/config.rb', line 228 def to_json(*) { default:, env:, explicit:, }.to_json(*) end |
#vst3_plugindir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
56 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 56 def vst3_plugindir; end |
#vst_plugindir ⇒ String
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
59 | # File 'sorbet/rbi/dsl/cask/config.rbi', line 59 def vst_plugindir; end |
#zsh_completion ⇒ Pathname
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
181 182 183 | # File 'cask/config.rb', line 181 def zsh_completion @zsh_completion ||= T.let(HOMEBREW_PREFIX/"share/zsh/site-functions", T.nilable(Pathname)) end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Cask/Config.html