Spec-Zone.ru › Ruby 3.4
  1. Prism::
  2. ASCIISource

class Prism::ASCIISource

Родительский класс:
Prism::Source

Специализированная версия Prism::Source для исходного кода, содержащего только символы ASCII. Этот класс используется для применения оптимизаций производительности, которые нельзя применить к исходному коду, содержащему многобайтовые символы.

Этот класс также используется в крайне редком случае, когда исходный код содержит многобайтовые символы, но помечен как двоичный из-за комментария с указанием кодировки и не может быть заранее преобразован в UTF-8. Это связано с тем, что на этом этапе все символы рассматриваются как однобайтовые.

Открытые методы экземпляра

character_column (byte_offset) Показать исходный код
# File lib/prism/parse_result.rb, line 261
def character_column(byte_offset)
  byte_offset - line_start(byte_offset)
end

Возвращает номер столбца в символах для заданного смещения в байтах.

character_offset (byte_offset) Показать исходный код
# File lib/prism/parse_result.rb, line 256
def character_offset(byte_offset)
  byte_offset
end

Возвращает смещение в символах для заданного смещения в байтах.

code_units_cache (encoding) Показать исходный код
# File lib/prism/parse_result.rb, line 278
def code_units_cache(encoding)
  ->(byte_offset) { byte_offset }
end

Возвращает кэш, представляющий собой тождественную функцию, чтобы сохранить совместимость интерфейса. Это возможно, поскольку для исходного кода, содержащего только символы ASCII, кодовые единицы всегда соответствуют смещениям в байтах.

code_units_column (byte_offset, encoding) Показать исходный код
# File lib/prism/parse_result.rb, line 285
def code_units_column(byte_offset, encoding)
  byte_offset - line_start(byte_offset)
end

Специализированная версия code_units_column, не зависящая от code_units_offset, выполнение которой требует больше ресурсов. По сути, это то же самое, что и Prism::Source#column.

code_units_offset (byte_offset, encoding) Показать исходный код
# File lib/prism/parse_result.rb, line 271
def code_units_offset(byte_offset, encoding)
  byte_offset
end

Возвращает смещение от начала файла для заданного смещения в байтах, подсчитанное в кодовых единицах указанной кодировки.

Этот метод проверен для UTF-8, UTF-16 и UTF-32. Если в других кодировках понятие кодовых единиц отличается от количества символов, здесь это не учитывается.

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

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