class Prism::Relocation::Repository
Репозиторий — это настроенная коллекция полей и набор записей, который умеет повторно разбирать исходный текст и восстанавливать значения.
Атрибуты
Записи, сохранённые в этом репозитории.
Поля, настроенные в этом репозитории.
Исходный объект, связанный с этим репозиторием. Это будет либо SourceFilepath (наиболее распространённый вариант использования), либо SourceString.
Публичные методы класса
# File lib/prism/relocation.rb, line 370
def initialize(source)
@source = source
@fields = {}
@entries = Hash.new { |hash, node_id| hash[node_id] = {} }
end Создаёт новый репозиторий с указанным исходным объектом.
Публичные методы экземпляра
# File lib/prism/relocation.rb, line 416 def character_columns field(:character_columns, CharacterColumnsField.new) end
Настраивает поле столбцов в символах для этого репозитория и возвращает self.
# File lib/prism/relocation.rb, line 399 def character_offsets field(:character_offsets, CharacterOffsetsField.new) end
Настраивает поле смещений в символах для этого репозитория и возвращает self.
# File lib/prism/relocation.rb, line 422 def code_unit_columns(encoding) field(:code_unit_columns, CodeUnitColumnsField.new(self, encoding)) end
Настраивает поле столбцов в единицах кода для этого репозитория с заданной кодировкой и возвращает self.
# File lib/prism/relocation.rb, line 405 def code_unit_offsets(encoding) field(:code_unit_offsets, CodeUnitOffsetsField.new(self, encoding)) end
Настраивает поле смещений в единицах кода для этого репозитория с заданной кодировкой и возвращает self.
# File lib/prism/relocation.rb, line 377 def code_units_cache(encoding) source.code_units_cache(encoding) end
Создаёт из исходного объекта кэш единиц кода для указанной кодировки.
# File lib/prism/relocation.rb, line 410 def columns field(:columns, ColumnsField.new) end
Настраивает поле столбцов для этого репозитория и возвращает self.
# File lib/prism/relocation.rb, line 440 def comments leading_comments.trailing_comments end
Настраивает поля начальных и конечных комментариев для этого репозитория и возвращает self.
# 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.
# File lib/prism/relocation.rb, line 428 def leading_comments field(:leading_comments, LeadingCommentsField.new) end
Настраивает поле начальных комментариев для этого репозитория и возвращает self.
# File lib/prism/relocation.rb, line 388 def lines field(:lines, LinesField.new) end
Настраивает поле строк для этого репозитория и возвращает self.
# File lib/prism/relocation.rb, line 393 def offsets field(:offsets, OffsetsField.new) end
Настраивает поле смещений для этого репозитория и возвращает self.
# File lib/prism/relocation.rb, line 434 def trailing_comments field(:trailing_comments, TrailingCommentsField.new) end
Настраивает поле конечных комментариев для этого репозитория и возвращает self.
Приватные методы экземпляра
# 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.