Spec-Zone.ru › Ruby 3.4

class Prism::Relocation::Repository

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

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

Атрибуты

entries [R]

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

fields [R]

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

source [R]

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

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

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

Инициализирует новый репозиторий с заданным источником.

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

character_columns ()
Исходный код
# File lib/prism/relocation.rb, line 415
def character_columns
  field(:character_columns, CharacterColumnsField.new)
end

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

character_offsets ()
Исходный код
# File lib/prism/relocation.rb, line 398
def character_offsets
  field(:character_offsets, CharacterOffsetsField.new)
end

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

code_unit_columns (encoding)
Исходный код
# File lib/prism/relocation.rb, line 421
def code_unit_columns(encoding)
  field(:code_unit_columns, CodeUnitColumnsField.new(self, encoding))
end

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

code_unit_offsets (encoding)
Исходный код
# File lib/prism/relocation.rb, line 404
def code_unit_offsets(encoding)
  field(:code_unit_offsets, CodeUnitOffsetsField.new(self, encoding))
end

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

code_units_cache (encoding)
Исходный код
# File lib/prism/relocation.rb, line 376
def code_units_cache(encoding)
  source.code_units_cache(encoding)
end

Создаёт кэш code units для заданного кодирования из источника.

columns ()
Исходный код
# File lib/prism/relocation.rb, line 409
def columns
  field(:columns, ColumnsField.new)
end

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

comments ()
Исходный код
# File lib/prism/relocation.rb, line 439
def comments
  leading_comments.trailing_comments
end

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

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

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

leading_comments ()
Исходный код
# File lib/prism/relocation.rb, line 427
def leading_comments
  field(:leading_comments, LeadingCommentsField.new)
end

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

lines ()
Исходный код
# File lib/prism/relocation.rb, line 387
def lines
  field(:lines, LinesField.new)
end

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

offsets ()
Исходный код
# File lib/prism/relocation.rb, line 392
def offsets
  field(:offsets, OffsetsField.new)
end

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

trailing_comments ()
Исходный код
# File lib/prism/relocation.rb, line 433
def trailing_comments
  field(:trailing_comments, TrailingCommentsField.new)
end

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

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

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

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

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

Spec-Zone.ru

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