Класс: Locale Закрытый
- Наследует:
- Object
- Object
- Locale
- Определён в:
- locale.rb
Обзор
Этот класс является частью закрытого API. Этот класс можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого класса, поскольку он может быть удалён или изменён без предупреждения.
Представление системной локали.
Используется для сравнения системного языка и языков, определённых с помощью директивы cask language.
Определено в пространстве имён
Классы: ParserError
Краткое описание атрибутов экземпляра свернуть
- #language ⇒ String? только для чтения закрытый
- #region ⇒ String? только для чтения закрытый
- #script ⇒ String? только для чтения закрытый
Краткое описание методов класса свернуть
- .parse(string) ⇒ T.attached_class закрытый
- .try_parse(string) ⇒ T.attached_class? закрытый
Краткое описание методов экземпляра свернуть
- #detect(locale_groups) ⇒ Enumerable<String, Locale>? закрытый
- #include?(other) ⇒ Boolean закрытый
- #initialize(language, script, region) ⇒ void конструктор закрытый
Подробное описание конструкторов
#initialize(language, script, region) ⇒ void
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | # File 'locale.rb', line 69 def initialize(language, script, region) raise ArgumentError, "#{self.class} cannot be empty" if language.nil? && region.nil? && script.nil? unless language.nil? regex = LANGUAGE_REGEX raise ParserError, "'language' does not match #{regex}" unless language.match?(regex) @language = T.let(language, T.nilable(String)) end unless script.nil? regex = SCRIPT_REGEX raise ParserError, "'script' does not match #{regex}" unless script.match?(regex) @script = T.let(script, T.nilable(String)) end return if region.nil? regex = REGION_REGEX raise ParserError, "'region' does not match #{regex}" unless region.match?(regex) @region = T.let(region, T.nilable(String)) end |
Подробное описание атрибутов экземпляра
#language ⇒ String? (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
60 61 62 | # File 'locale.rb', line 60 def language @language end |
#region ⇒ String? (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
66 67 68 | # File 'locale.rb', line 66 def region @region end |
#script ⇒ String? (только для чтения)
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
63 64 65 | # File 'locale.rb', line 63 def script @script end |
Подробное описание методов класса
.parse(string) ⇒ T.attached_class
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
28 29 30 31 32 33 34 | # File 'locale.rb', line 28 def self.parse(string) if (locale = try_parse(string)) return locale end raise ParserError, "'#{string}' cannot be parsed to a #{self}" end |
.try_parse(string) ⇒ T.attached_class?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # File 'locale.rb', line 37 def self.try_parse(string) return if string.blank? scanner = StringScanner.new(string) if (language = scanner.scan(LANGUAGE_REGEX)) sep = scanner.scan("-") return if (sep && scanner.eos?) || (sep.nil? && !scanner.eos?) end if (script = scanner.scan(SCRIPT_REGEX)) sep = scanner.scan("-") return if (sep && scanner.eos?) || (sep.nil? && !scanner.eos?) end region = scanner.scan(REGION_REGEX) return unless scanner.eos? new(language, script, region) end |
Подробное описание методов экземпляра
#detect(locale_groups) ⇒ Enumerable<String, Locale>?
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
128 129 130 131 | # File 'locale.rb', line 128 def detect(locale_groups) locale_groups.find { |locales| locales.any? { |locale| eql?(locale) } } || locale_groups.find { |locales| locales.any? { |locale| include?(locale) } } end |
#include?(other) ⇒ Boolean
Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Третьим сторонам следует по возможности избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
95 96 97 98 99 100 101 102 103 104 105 106 | # File 'locale.rb', line 95 def include?(other) unless other.is_a?(self.class) other = self.class.try_parse(other) return false if other.nil? end [:language, :script, :region].all? do |var| next true if other.public_send(var).nil? public_send(var) == other.public_send(var) end end |
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Locale.html