Spec-Zone.ru › Homebrew

Класс: 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. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • default (ConfigHash, nil) (по умолчанию: nil)
  • env (ConfigHash, nil) (по умолчанию: nil)
  • explicit (ConfigHash) (по умолчанию: {})
  • ignore_invalid_keys (Boolean) (по умолчанию: false)


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-файлов и формул. Сторонним разработчикам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Получить явную конфигурацию.

Возвращает:

  • (ConfigHash)


102
103
104
# File 'cask/config.rb', line 102

def explicit
  @explicit
end

Подробное описание методов класса

.canonicalize(config) ⇒ ConfigHash

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Рекурсивное вычисление во время выполнения заставляет вычислить LazyObject

Параметры:

  • config (ConfigHash)

Возвращает:

  • (ConfigHash)


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).expand_path]
    else
      [k, v]
    end
  end
end

.defaults ⇒ Hash{Symbol => LazyObject, String}

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Рекурсивное вычисление во время выполнения заставляет вычислить LazyObject

Возвращает:

  • (Hash{Symbol => LazyObject, String})


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. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • args (Homebrew::CLI::Args)

Возвращает:

  • (T.attached_class)


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. По возможности сторонним разработчикам следует избегать использования этого метода, так как он может быть удалён или изменён без предупреждения.

Параметры:

  • json (String)
  • ignore_invalid_keys (Boolean) (по умолчанию: false)

Возвращает:

  • (T.attached_class)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


11
# File 'sorbet/rbi/dsl/cask/config.rbi', line 11

def appdir; end

#appimagedir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


14
# File 'sorbet/rbi/dsl/cask/config.rbi', line 14

def appimagedir; end

#audio_unit_plugindir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


17
# File 'sorbet/rbi/dsl/cask/config.rbi', line 17

def audio_unit_plugindir; end

#bash_completion ⇒ Pathname

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Pathname)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Pathname)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


20
# File 'sorbet/rbi/dsl/cask/config.rbi', line 20

def colorpickerdir; end

#default ⇒ ConfigHash

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Рекурсивное вычисление во время выполнения приводит к вычислению LazyObject

Возвращает:

  • (ConfigHash)


142
143
144
# File 'cask/config.rb', line 142

def default
  @default ||= self.class.canonicalize(self.class.defaults)
end

#dictionarydir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


23
# File 'sorbet/rbi/dsl/cask/config.rbi', line 23

def dictionarydir; end

#env ⇒ ConfigHash

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (ConfigHash)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Pathname)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


26
# File 'sorbet/rbi/dsl/cask/config.rbi', line 26

def fontdir; end

#input_methoddir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


29
# File 'sorbet/rbi/dsl/cask/config.rbi', line 29

def input_methoddir; end

#internet_plugindir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


32
# File 'sorbet/rbi/dsl/cask/config.rbi', line 32

def internet_plugindir; end

#keyboard_layoutdir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


35
# File 'sorbet/rbi/dsl/cask/config.rbi', line 35

def keyboard_layoutdir; end

#languages ⇒ Array<String>

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Array<String>)


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. Сторонним разработчикам по возможности не следует использовать этот метод, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Параметры:

  • languages (Array<String>)


206
207
208
# File 'cask/config.rb', line 206

def languages=(languages)
  explicit[:languages] = languages
end

#manpagedir ⇒ Pathname

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Pathname)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


41
# File 'sorbet/rbi/dsl/cask/config.rbi', line 41

def mdimporterdir; end

#merge(other) ⇒ T.self_type

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • other (Config)

Возвращает:

  • (T.self_type)


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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


44
# File 'sorbet/rbi/dsl/cask/config.rbi', line 44

def prefpanedir; end

#qlplugindir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


47
# File 'sorbet/rbi/dsl/cask/config.rbi', line 47

def qlplugindir; end

#screen_saverdir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


50
# File 'sorbet/rbi/dsl/cask/config.rbi', line 50

def screen_saverdir; end

#servicedir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


53
# File 'sorbet/rbi/dsl/cask/config.rbi', line 53

def servicedir; end

#to_json(*options) ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Параметры:

  • options (T.untyped)

Возвращает:

  • (String)


228
229
230
231
232
233
234
# File 'cask/config.rb', line 228

def to_json(*options)
  {
    default:,
    env:,
    explicit:,
  }.to_json(*options)
end

#vst3_plugindir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


56
# File 'sorbet/rbi/dsl/cask/config.rbi', line 56

def vst3_plugindir; end

#vst_plugindir ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


59
# File 'sorbet/rbi/dsl/cask/config.rbi', line 59

def vst_plugindir; end

#zsh_completion ⇒ Pathname

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Pathname)


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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API