Spec-Zone.ru › Ruby 3.3

класс Prism::Location

Родитель:
Объект

Это представляет местоположение в источнике.

Атрибуты

comments[R]

Список комментариев, прикрепленных к этому местоположению

length[R]

Длина этого местоположения в байтах.

start_offset[R]

Смещение в байтах от начала источника, где начинается это местоположение.

Публичные методы класса

new(source, start_offset, length) Показать исходный код
# File lib/prism/parse_result.rb, line 108
def initialize(source, start_offset, length)
  @source = source
  @start_offset = start_offset
  @length = length
  @comments = []
end

Создать новый объект местоположения с заданным источником, начальным байтовым смещением и длиной в байтах.

null() Показать исходный код
# File lib/prism/parse_result.rb, line 221
def self.null
  new(nil, 0, 0)
end

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

Публичные методы экземпляра

==(other) Показать исходный код
# File lib/prism/parse_result.rb, line 202
def ==(other)
  other.is_a?(Location) &&
    other.start_offset == start_offset &&
    other.end_offset == end_offset
end

Возвращает true, если заданное местоположение other равно этому местоположению.

copy(**options) Показать исходный код
# File lib/prism/parse_result.rb, line 116
def copy(**options)
  Location.new(
    options.fetch(:source) { source },
    options.fetch(:start_offset) { start_offset },
    options.fetch(:length) { length }
  )
end

Создаёт новый объект местоположения с заданными параметрами.

deconstruct_keys(keys) Показать исходный код
# File lib/prism/parse_result.rb, line 192
def deconstruct_keys(keys)
  { start_offset: start_offset, end_offset: end_offset }
end

Реализует интерфейс сопоставления с образцом хэша для Location.

end_character_column() Показать исходный код
# File lib/prism/parse_result.rb, line 187
def end_character_column
  source.character_column(end_offset)
end

Номер столбца в символах, где заканчивается это местоположение от начала строки.

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

Смещение символов от начала источника, где заканчивается это местоположение.

end_column() Показать исходный код
# File lib/prism/parse_result.rb, line 181
def end_column
  source.column(end_offset)
end

Номер столбца в байтах, где заканчивается это местоположение от начала строки.

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

Номер строки, где заканчивается это местоположение.

end_offset() Показать исходный код
# File lib/prism/parse_result.rb, line 141
def end_offset
  start_offset + length
end

Смещение в байтах от начала источника, где заканчивается это местоположение.

inspect() Показать исходный код
# File lib/prism/parse_result.rb, line 125
def inspect
  "#<Prism::Location @start_offset=#{@start_offset} @length=#{@length} start_line=#{start_line}>"
end

Возвращает строковое представление этого местоположения.

join(other) Показать исходный код
# File lib/prism/parse_result.rb, line 211
def join(other)
  raise "Incompatible sources" if source != other.source
  raise "Incompatible locations" if start_offset > other.start_offset

  Location.new(source, start_offset, other.end_offset - start_offset)
end

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

pretty_print(q) Показать исходный код
# File lib/prism/parse_result.rb, line 197
def pretty_print(q)
  q.text("(#{start_line},#{start_column})-(#{end_line},#{end_column})")
end

Реализует интерфейс красивой печати для Location.

slice() Показать исходный код
# File lib/prism/parse_result.rb, line 130
def slice
  source.slice(start_offset, length)
end

Исходный код, который представляет это местоположение.

start_character_column() Показать исходный код
# File lib/prism/parse_result.rb, line 175
def start_character_column
  source.character_column(start_offset)
end

Номер столбца в символах, где начинается это местоположение от начала строки.

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

Смещение символов от начала источника, где начинается это местоположение.

start_column() Показать исходный код
# File lib/prism/parse_result.rb, line 169
def start_column
  source.column(start_offset)
end

Номер столбца в байтах, где начинается это местоположение от начала строки.

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

Номер строки, где начинается это местоположение.

start_line_slice() Показать исходный код
# File lib/prism/parse_result.rb, line 157
def start_line_slice
  offset = source.line_start(start_offset)
  source.slice(offset, start_offset - offset)
end

Содержимое строки, где начинается это местоположение, перед этим местоположением.

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

Spec-Zone.ru

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