class Prism::Relocation::Repository
A repository is a configured collection of fields and a set of entries that knows how to reparse a source and reify the values.
Attributes
Hash[Symbol, _Field]
The fields that have been configured on this repository.
Source
The source associated with this repository. This will be either a SourceFilepath (the most common use case) or a SourceString.
Public Class Methods
(Source source) → void
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 370 def initialize(source) @source = source @fields = {} @entries = Hash.new { |hash, node_id| hash[node_id] = {} } end
Initialize a new repository with the given source.
Public Instance Methods
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 416 def character_columns field(:character_columns, CharacterColumnsField.new) end
Configure the character columns field for this repository and return self.
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 399 def character_offsets field(:character_offsets, CharacterOffsetsField.new) end
Configure the character offsets field for this repository and return self.
(Encoding encoding) → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 422 def code_unit_columns(encoding) field(:code_unit_columns, CodeUnitColumnsField.new(self, encoding)) end
Configure the code unit columns field for this repository for a specific encoding and return self.
(Encoding encoding) → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 405 def code_unit_offsets(encoding) field(:code_unit_offsets, CodeUnitOffsetsField.new(self, encoding)) end
Configure the code unit offsets field for this repository for a specific encoding and return self.
(Encoding encoding) → _CodeUnitsCache
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 377 def code_units_cache(encoding) source.code_units_cache(encoding) end
Create a code units cache for the given encoding from the source.
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 410 def columns field(:columns, ColumnsField.new) end
Configure the columns field for this repository and return self.
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 440 def comments leading_comments.trailing_comments end
Configure both the leading and trailing comment fields for this repository and return self.
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/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
Configure the filepath field for this repository and return self.
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 428 def leading_comments field(:leading_comments, LeadingCommentsField.new) end
Configure the leading comments field for this repository and return self.
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 388 def lines field(:lines, LinesField.new) end
Configure the lines field for this repository and return self.
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 393 def offsets field(:offsets, OffsetsField.new) end
Configure the offsets field for this repository and return self.
() → self
Source
# File vendor/bundle/ruby/4.0.0/gems/prism-1.9.0/lib/prism/relocation.rb, line 434 def trailing_comments field(:trailing_comments, TrailingCommentsField.new) end
Configure the trailing comments field for this repository and return self.