Spec-Zone.ru › Ruby 3.4
  1. Prism::
  2. Relocation::
  3. Repository

class Prism::Relocation::Repository

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

Репозиторий — это настроенная коллекция полей и набор записей, который умеет повторно разбирать исходный текст и восстанавливать значения.

Атрибуты

entries [R]

Записи, сохранённые в этом репозитории.

fields [R]

Поля, настроенные в этом репозитории.

source [R]

Исходный объект, связанный с этим репозиторием. Это будет либо SourceFilepath (наиболее распространённый вариант использования), либо SourceString.

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

new (source) Показать исходный код
# File lib/prism/relocation.rb, line 370
def initialize(source)
  @source = source
  @fields = {}
  @entries = Hash.new { |hash, node_id| hash[node_id] = {} }
end

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

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

character_columns () Показать исходный код
# File lib/prism/relocation.rb, line 416
def character_columns
  field(:character_columns, CharacterColumnsField.new)
end

Настраивает поле столбцов в символах для этого репозитория и возвращает self.

character_offsets () Показать исходный код
# File lib/prism/relocation.rb, line 399
def character_offsets
  field(:character_offsets, CharacterOffsetsField.new)
end

Настраивает поле смещений в символах для этого репозитория и возвращает self.

code_unit_columns (encoding) Показать исходный код
# File lib/prism/relocation.rb, line 422
def code_unit_columns(encoding)
  field(:code_unit_columns, CodeUnitColumnsField.new(self, encoding))
end

Настраивает поле столбцов в единицах кода для этого репозитория с заданной кодировкой и возвращает self.

code_unit_offsets (encoding) Показать исходный код
# File lib/prism/relocation.rb, line 405
def code_unit_offsets(encoding)
  field(:code_unit_offsets, CodeUnitOffsetsField.new(self, encoding))
end

Настраивает поле смещений в единицах кода для этого репозитория с заданной кодировкой и возвращает self.

code_units_cache (encoding) Показать исходный код
# File lib/prism/relocation.rb, line 377
def code_units_cache(encoding)
  source.code_units_cache(encoding)
end

Создаёт из исходного объекта кэш единиц кода для указанной кодировки.

columns () Показать исходный код
# File lib/prism/relocation.rb, line 410
def columns
  field(:columns, ColumnsField.new)
end

Настраивает поле столбцов для этого репозитория и возвращает self.

comments () Показать исходный код
# File lib/prism/relocation.rb, line 440
def comments
  leading_comments.trailing_comments
end

Настраивает поля начальных и конечных комментариев для этого репозитория и возвращает self.

filepath () Показать исходный код
# File lib/prism/relocation.rb, line 382
def filepath
  raise ConfigurationError, "Can only specify filepath for a filepath source" unless source.is_a?(SourceFilepath)
  field(:filepath, FilepathField.new(source.value))
end

Настраивает поле пути к файлу для этого репозитория и возвращает self.

leading_comments () Показать исходный код
# File lib/prism/relocation.rb, line 428
def leading_comments
  field(:leading_comments, LeadingCommentsField.new)
end

Настраивает поле начальных комментариев для этого репозитория и возвращает self.

lines () Показать исходный код
# File lib/prism/relocation.rb, line 388
def lines
  field(:lines, LinesField.new)
end

Настраивает поле строк для этого репозитория и возвращает self.

offsets () Показать исходный код
# File lib/prism/relocation.rb, line 393
def offsets
  field(:offsets, OffsetsField.new)
end

Настраивает поле смещений для этого репозитория и возвращает self.

trailing_comments () Показать исходный код
# File lib/prism/relocation.rb, line 434
def trailing_comments
  field(:trailing_comments, TrailingCommentsField.new)
end

Настраивает поле конечных комментариев для этого репозитория и возвращает self.

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

field (name, value) Показать исходный код
# File lib/prism/relocation.rb, line 488
def field(name, value)
  raise ConfigurationError, "Cannot specify multiple #{name} fields" if @fields.key?(name)
  @fields[name] = value
  self
end

Добавляет указанное поле в репозиторий и возвращает репозиторий, чтобы вызовы можно было объединять в цепочку.

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