Spec-Zone.ru › Homebrew

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

Параметры:

  • language (String, nil)
  • script (String, nil)
  • region (String, nil)

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

  • (ArgumentError)


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

Возвращает:

  • (String, nil)


60
61
62
# File 'locale.rb', line 60

def language
  @language
end

#region ⇒ String? (только для чтения)

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

Возвращает:

  • (String, nil)


66
67
68
# File 'locale.rb', line 66

def region
  @region
end

#script ⇒ String? (только для чтения)

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

Возвращает:

  • (String, nil)


63
64
65
# File 'locale.rb', line 63

def script
  @script
end

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

.parse(string) ⇒ T.attached_class

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

Параметры:

  • string (String)

Возвращает:

  • (T.attached_class)

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

  • (ParserError)


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

Параметры:

  • string (String)

Возвращает:

  • (T.attached_class, nil)


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

Параметры:

  • locale_groups (Enumerable<Enumerable<String, Locale>>)

Возвращает:

  • (Enumerable<String, Locale>, nil)


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

Параметры:

  • other (String, Locale)

Возвращает:

  • (Boolean)


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

Spec-Zone.ru

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