Spec-Zone.ru › Homebrew

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

Наследует:
Object
  • Object
  • Version
показать все
Включает:
Comparable
Определено в:
version.rb,
version/parser.rb

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

Непосредственные известные подклассы

MacOSVersion

Определено в пространстве имён

Классы: AlphaToken, BetaToken, CompositeToken, NumericToken, Parser, PatchToken, PostToken, PreToken, RCToken, RegexParser, StemParser, StringToken, Token, UrlParser

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

NULL_TOKEN =

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

Обозначает отсутствие токена.

T.let(NullToken.new.freeze, NullToken)

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

  • .detect(url, **specs) ⇒ Version приватный
  • .formula_optionally_versioned_regex(name, full: true) ⇒ Regexp приватный
  • .parse(spec, detected_from_url: false) ⇒ Version приватный

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

  • #commit ⇒ String?

    Возвращает коммит для версии HEAD.

  • #compare(comparator, other) ⇒ Boolean приватный
  • #detected_from_url? ⇒ Boolean приватный
  • #freeze ⇒ T.self_type приватный
  • #head? ⇒ Boolean

    Проверяет, является ли это версией HEAD.

  • #initialize(val, detected_from_url: false) ⇒ void конструктор приватный
  • #major ⇒ Token?

    Мажорная версия.

  • #major_minor ⇒ T.self_type

    Мажорная и минорная версии.

  • #major_minor_patch ⇒ T.self_type

    Мажорная, минорная версии и версия исправления.

  • #minor ⇒ Token?

    Минорная версия.

  • #null? ⇒ Boolean приватный
  • #patch ⇒ Token?

    Версия исправления.

  • #respond_to?(method, include_all = false) ⇒ Boolean приватный
  • #to_f ⇒ Float

    Преобразует версию в число с плавающей точкой.

  • #to_i ⇒ Integer

    Преобразует версию в целое число.

  • #to_json(*options) ⇒ String приватный
  • #to_str ⇒ String

    Неявное преобразование этого объекта Version в строку, используемое там, где ожидается String.

  • #update_commit(commit) ⇒ void приватный

    Обновляет коммит для версии HEAD.

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

#initialize(val, detected_from_url: false) ⇒ void

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

Параметры:

  • val (String, Version)
  • detected_from_url (Boolean) (по умолчанию: false)

Вызывает исключения:

  • (ArgumentError)


497
498
499
500
501
502
503
# File 'version.rb', line 497

def initialize(val, detected_from_url: false)
  version = val.to_str
  raise ArgumentError, "Version must not be empty" if version.blank?

  @version = T.let(version, String)
  @detected_from_url = detected_from_url
end

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

.detect(url, **specs) ⇒ Version

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

Параметры:

  • url (String, Pathname)
  • specs (T.untyped)

Возвращает:

  • (Version)


344
345
346
# File 'version.rb', line 344

def self.detect(url, **specs)
  parse(specs.fetch(:tag, url), detected_from_url: true)
end

.formula_optionally_versioned_regex(name, full: true) ⇒ Regexp

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

Параметры:

  • name (String, Symbol)
  • full (Boolean) (по умолчанию: true)

Возвращает:

  • (Regexp)


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

def self.formula_optionally_versioned_regex(name, full: true)
  /#{"^" if full}#{Regexp.escape(name)}(@\d[\d.]*)?#{"$" if full}/
end

.parse(spec, detected_from_url: false) ⇒ Version

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

Параметры:

  • spec (String, Pathname)
  • detected_from_url (Boolean) (по умолчанию: false)

Возвращает:

  • (Version)


349
350
351
352
353
354
355
356
357
358
359
360
361
# File 'version.rb', line 349

def self.parse(spec, detected_from_url: false)
  # This type of full-URL decoding is not technically correct but we only need a rough decode for version parsing.
  spec = URI.decode_www_form_component(spec.to_s) if detected_from_url

  spec = Pathname(spec)

  VERSION_PARSERS.each do |parser|
    version = parser.parse(spec)
    return new(version, detected_from_url:) if version.present?
  end

  NULL
end

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

#commit ⇒ String?

Возвращает коммит для версии HEAD.

Возвращает:

  • (String, nil)


525
526
527
# File 'version.rb', line 525

def commit
  version&.match(HEAD_VERSION_REGEX)&.[](:commit)
end

#compare(comparator, other) ⇒ Boolean

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

Параметры:

  • comparator (String)
  • other (Version)

Возвращает:

  • (Boolean)


547
548
549
550
551
552
553
554
555
556
557
# File 'version.rb', line 547

def compare(comparator, other)
  case comparator
  when ">=" then self >= other
  when ">" then self > other
  when "<" then self < other
  when "<=" then self <= other
  when "==" then self == other
  when "!=" then self != other
  else raise ArgumentError, "Unknown comparator: #{comparator}"
  end
end

#detected_from_url? ⇒ Boolean

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

Возвращает:

  • (Boolean)


506
507
508
# File 'version.rb', line 506

def detected_from_url?
  @detected_from_url
end

#freeze ⇒ T.self_type

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

Возвращает:

  • (T.self_type)


758
759
760
761
# File 'version.rb', line 758

def freeze
  tokens # Determine and store tokens before freezing
  super
end

#head? ⇒ Boolean

Проверяет, является ли это версией HEAD.

Возвращает:

  • (Boolean)


517
518
519
# File 'version.rb', line 517

def head?
  version&.match?(HEAD_VERSION_REGEX) || false
end

#major ⇒ Token?

Мажорная версия.

Возвращает:

  • (Token, nil)


652
653
654
655
656
# File 'version.rb', line 652

def major
  return NULL_TOKEN if null?

  tokens.first
end

#major_minor ⇒ T.self_type

Мажорная и минорная версии.

Возвращает:

  • (T.self_type)


682
683
684
685
686
687
# File 'version.rb', line 682

def major_minor
  return self if null?

  major_minor = T.must(tokens[0..1])
  major_minor.empty? ? NULL : self.class.new(major_minor.join("."))
end

#major_minor_patch ⇒ T.self_type

Мажорная, минорная версии и версия исправления.

Возвращает:

  • (T.self_type)


693
694
695
696
697
698
# File 'version.rb', line 693

def major_minor_patch
  return self if null?

  major_minor_patch = T.must(tokens[0..2])
  major_minor_patch.empty? ? NULL : self.class.new(major_minor_patch.join("."))
end

#minor ⇒ Token?

Минорная версия.

Возвращает:

  • (Token, nil)


662
663
664
665
666
# File 'version.rb', line 662

def minor
  return NULL_TOKEN if null?

  tokens.second
end

#null? ⇒ Boolean

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

Возвращает:

  • (Boolean)


542
543
544
# File 'version.rb', line 542

def null?
  version.nil?
end

#patch ⇒ Token?

Версия исправления.

Возвращает:

  • (Token, nil)


672
673
674
675
676
# File 'version.rb', line 672

def patch
  return NULL_TOKEN if null?

  tokens.third
end

#respond_to?(method, include_all = false) ⇒ Boolean

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

Параметры:

  • method (Symbol, String)
  • include_all (Boolean) (по умолчанию: false)

Возвращает:

  • (Boolean)


744
745
746
747
748
# File 'version.rb', line 744

def respond_to?(method, include_all = false)
  return !null? if ["to_str", :to_str].include?(method)

  super
end

#to_f ⇒ Float

Преобразует версию в число с плавающей точкой.

Возвращает:

  • (Float)


709
710
711
712
713
# File 'version.rb', line 709

def to_f
  return Float::NAN if null?

  version.to_f
end

#to_i ⇒ Integer

Преобразует версию в целое число.

Возвращает:

  • (Integer)


719
720
721
# File 'version.rb', line 719

def to_i
  version.to_i
end

#to_json(*options) ⇒ String

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

Параметры:

  • options (T.untyped)

Возвращает:

  • (String)


741
# File 'version.rb', line 741

def to_json(*options) = version.to_json(*options)

#to_str ⇒ String

Неявное преобразование этого объекта Version в строку, используемое там, где ожидается String. Вызывает NoMethodError, если это версия NULL.

Возвращает:

  • (String)

Вызывает исключения:

  • (NoMethodError)


728
729
730
731
732
# File 'version.rb', line 728

def to_str
  raise NoMethodError, "undefined method `to_str` for #{self.class}:NULL" if null?

  T.must(version).to_str
end

#update_commit(commit) ⇒ void

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

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

Обновляет коммит для версии HEAD.

Параметры:

  • commit (String, nil)

Вызывает исключения:

  • (ArgumentError)


531
532
533
534
535
536
537
538
539
# File 'version.rb', line 531

def update_commit(commit)
  raise ArgumentError, "Cannot update commit for non-HEAD version." unless head?

  @version = if commit
    "HEAD-#{commit}"
  else
    "HEAD"
  end
end

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

Spec-Zone.ru

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