Spec-Zone.ru › Homebrew

Класс: FormulaInfo Приватный

Наследуется от:
Object
  • Object
  • FormulaInfo
показать все
Определён в:
formula_info.rb

Обзор

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

Информация о формуле, полученная из внешнего вызова brew info --json.

Краткое описание атрибутов экземпляра свернуть

  • #info ⇒ Hash{String => T.untyped} приватный

    Вся структура info, разобранная из JSON.

Краткое описание методов класса свернуть

  • .force_utf8!(str) ⇒ void приватный
  • .lookup(name) ⇒ FormulaInfo? приватный

    Ищет формулу на диске и считывает информацию о ней.

Краткое описание методов экземпляра свернуть

  • #any_bottle_tag ⇒ String? приватный
  • #bottle_info(my_bottle_tag = Utils::Bottles.tag) ⇒ Hash{String => String}? приватный
  • #bottle_info_any ⇒ Hash{String => String}? приватный
  • #bottle_tags ⇒ Array<String> приватный
  • #initialize(info) ⇒ void конструктор приватный
  • #pkg_version(spec_type = :stable) ⇒ PkgVersion приватный
  • #revision ⇒ Integer приватный
  • #version(spec_type) ⇒ Version приватный

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

#initialize(info) ⇒ void

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

Параметры:

  • info (Hash{String => T.untyped})


11
12
13
# File 'formula_info.rb', line 11

def initialize(info)
  @info = info
end

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

#info ⇒ Hash{String => T.untyped}

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

Вся структура info, разобранная из JSON.

Возвращает:

  • (Hash{String => T.untyped})


8
9
10
# File 'formula_info.rb', line 8

def info
  @info
end

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

.force_utf8!(str) ⇒ void

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

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

Параметры:

  • str (String)


82
83
84
# File 'formula_info.rb', line 82

def self.force_utf8!(str)
  str.force_encoding("UTF-8") if str.respond_to?(:force_encoding)
end

.lookup(name) ⇒ FormulaInfo?

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

Ищет формулу на диске и считывает информацию о ней. Возвращает nil, если формула отсутствует или произошла ошибка при её чтении.

Параметры:

  • name (Pathname)

Возвращает:

  • (FormulaInfo, nil)


18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'formula_info.rb', line 18

def self.lookup(name)
  json = Utils.popen_read(
    *HOMEBREW_RUBY_EXEC_ARGS,
    HOMEBREW_LIBRARY_PATH/"brew.rb",
    "info",
    "--json=v1",
    name,
  )

  return unless $CHILD_STATUS.success?

  force_utf8!(json)
  FormulaInfo.new(JSON.parse(json)[0])
end

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

#any_bottle_tag ⇒ String?

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

Возвращает:

  • (String, nil)


59
60
61
62
63
# File 'formula_info.rb', line 59

def any_bottle_tag
  tag = Utils::Bottles.tag.to_s
  # Prefer native bottles as a convenience for download caching
  bottle_tags.include?(tag) ? tag : bottle_tags.first
end

#bottle_info(my_bottle_tag = Utils::Bottles.tag) ⇒ Hash{String => String}?

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

Параметры:

  • my_bottle_tag (Utils::Bottles::Tag, String, nil) (по умолчанию: Utils::Bottles.tag)

Возвращает:

  • (Hash{String => String}, nil)


43
44
45
46
47
48
49
50
51
# File 'formula_info.rb', line 43

def bottle_info(my_bottle_tag = Utils::Bottles.tag)
  tag_s = my_bottle_tag.to_s
  return unless info["bottle"]["stable"]

  btl_info = info["bottle"]["stable"]["files"][tag_s]
  return unless btl_info

  { "url" => btl_info["url"], "sha256" => btl_info["sha256"] }
end

#bottle_info_any ⇒ Hash{String => String}?

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

Возвращает:

  • (Hash{String => String}, nil)


54
55
56
# File 'formula_info.rb', line 54

def bottle_info_any
  bottle_info(any_bottle_tag)
end

#bottle_tags ⇒ Array<String>

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

Возвращает:

  • (Array<String>)


34
35
36
37
38
# File 'formula_info.rb', line 34

def bottle_tags
  return [] unless info["bottle"]["stable"]

  info["bottle"]["stable"]["files"].keys
end

#pkg_version(spec_type = :stable) ⇒ PkgVersion

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

Параметры:

  • spec_type (Symbol) (по умолчанию: :stable)

Возвращает:

  • (PkgVersion)


72
73
74
# File 'formula_info.rb', line 72

def pkg_version(spec_type = :stable)
  PkgVersion.new(version(spec_type), revision)
end

#revision ⇒ Integer

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

Возвращает:

  • (Integer)


77
78
79
# File 'formula_info.rb', line 77

def revision
  info["revision"]
end

#version(spec_type) ⇒ Version

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

Параметры:

  • spec_type (Symbol)

Возвращает:

  • (Version)


66
67
68
69
# File 'formula_info.rb', line 66

def version(spec_type)
  version_str = info["versions"][spec_type.to_s]
  Version.new(version_str)
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/FormulaInfo.html

Spec-Zone.ru

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