class Ruby::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

The entries that have been saved on this repository.

The fields that have been configured on this repository.

The source associated with this repository. This will be either a SourceFilepath (the most common use case) or a SourceString.

Public Class Methods

Initialize a new repository with the given source.

: (Source source) -> void

# File lib/ruby/prism/relocation.rb, line 496
def initialize(source)
  @source = source
  @fields = {}
  @entries = Hash.new { |hash, node_id| hash[node_id] = {} }
end

Public Instance Methods

Configure the character columns field for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 558
def character_columns
  field(:character_columns, CharacterColumnsField.new)
end

Configure the character offsets field for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 535
def character_offsets
  field(:character_offsets, CharacterOffsetsField.new)
end

Configure the code unit columns field for this repository for a specific encoding and return self.

: (Encoding encoding) -> self

# File lib/ruby/prism/relocation.rb, line 566
def code_unit_columns(encoding)
  field(:code_unit_columns, CodeUnitColumnsField.new(self, encoding))
end

Configure the code unit offsets field for this repository for a specific encoding and return self.

: (Encoding encoding) -> self

# File lib/ruby/prism/relocation.rb, line 543
def code_unit_offsets(encoding)
  field(:code_unit_offsets, CodeUnitOffsetsField.new(self, encoding))
end

Create a code units cache for the given encoding from the source.

: (Encoding encoding) -> _CodeUnitsCache

# File lib/ruby/prism/relocation.rb, line 505
def code_units_cache(encoding)
  source.code_units_cache(encoding)
end

Configure the columns field for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 550
def columns
  field(:columns, ColumnsField.new)
end

Configure both the leading and trailing comment fields for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 590
def comments
  leading_comments.trailing_comments
end

Configure the filepath field for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 512
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 leading comments field for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 574
def leading_comments
  field(:leading_comments, LeadingCommentsField.new)
end

Configure the lines field for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 520
def lines
  field(:lines, LinesField.new)
end

Configure the offsets field for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 527
def offsets
  field(:offsets, OffsetsField.new)
end

Configure the trailing comments field for this repository and return self.

: () -> self

# File lib/ruby/prism/relocation.rb, line 582
def trailing_comments
  field(:trailing_comments, TrailingCommentsField.new)
end