class Prism::ASCIISource
Специализированная версия Prism::Source для исходного кода, содержащего только символы ASCII. Этот класс используется для применения оптимизаций производительности, которые нельзя применить к исходному коду, содержащему многобайтовые символы.
Этот класс также будет использоваться в крайне редком случае, когда исходный код содержит многобайтовые символы, но помечен как двоичный из-за комментария с указанием кодировки и не может быть заранее преобразован в UTF-8. Это происходит потому, что на данном этапе все символы будут считаться однобайтовыми.
Открытые методы экземпляра
# File lib/prism/parse_result.rb, line 248 def character_column(byte_offset) byte_offset - line_start(byte_offset) end
Возвращает номер столбца в символах для заданного смещения в байтах.
# File lib/prism/parse_result.rb, line 243 def character_offset(byte_offset) byte_offset end
Возвращает смещение в символах для заданного смещения в байтах.
# File lib/prism/parse_result.rb, line 265
def code_units_cache(encoding)
->(byte_offset) { byte_offset }
end Возвращает кэш, реализующий тождественную функцию, чтобы сохранить тот же интерфейс. Это возможно, поскольку для источников, содержащих только ASCII-символы, кодовые единицы всегда соответствуют смещениям в байтах.
# File lib/prism/parse_result.rb, line 272 def code_units_column(byte_offset, encoding) byte_offset - line_start(byte_offset) end
Специализированная версия code_units_column, не зависящая от code_units_offset, которая является более затратной операцией. По сути, это то же самое, что и Prism::Source#column.
# File lib/prism/parse_result.rb, line 258 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.