Класс: Version Приватный
- Наследует:
- Object
- Object
- Version
- Включает:
- Comparable
- Определено в:
- version.rb,
version/parser.rb
Этот класс является частью приватного API. Этот класс можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Непосредственные известные подклассы
Определено в пространстве имён
Классы: 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
- #update_commit(commit) ⇒ void приватный
Обновляет коммит для версии HEAD.
Подробное описание конструкторов
#initialize(val, detected_from_url: false) ⇒ void
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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.
525 526 527 | # File 'version.rb', line 525 def commit version&.match(HEAD_VERSION_REGEX)&.[](:commit) end |
#compare(comparator, other) ⇒ Boolean
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
506 507 508 | # File 'version.rb', line 506 def detected_from_url? @detected_from_url end |
#freeze ⇒ T.self_type
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
758 759 760 761 | # File 'version.rb', line 758 def freeze tokens # Determine and store tokens before freezing super end |
#head? ⇒ Boolean
Проверяет, является ли это версией HEAD.
517 518 519 | # File 'version.rb', line 517 def head? version&.match?(HEAD_VERSION_REGEX) || false end |
#major ⇒ Token?
Мажорная версия.
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
Мажорная и минорная версии.
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
Мажорная, минорная версии и версия исправления.
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?
Минорная версия.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
542 543 544 | # File 'version.rb', line 542 def null? version.nil? end |
#patch ⇒ Token?
Версия исправления.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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
Преобразует версию в число с плавающей точкой.
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
Преобразует версию в целое число.
719 720 721 | # File 'version.rb', line 719 def to_i version.to_i end |
#to_json(*options) ⇒ String
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
741 | # File 'version.rb', line 741 def to_json(*) = version.to_json(*) |
#to_str ⇒ String
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.
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