class Prism::Relocation::CodeUnitColumnsField

A field representing the start and end code unit columns for a specific encoding.

Attributes

encoding[R]

The associated encoding for the code units.

repository[R]

The repository object that is used for lazily creating a code units cache.

Public Class Methods

new(repository, encoding) click to toggle source

Initialize a new field with the associated repository and encoding.

# File prism/relocation.rb, line 290
def initialize(repository, encoding)
  @repository = repository
  @encoding = encoding
  @cache = nil
end

Public Instance Methods

fields(value) click to toggle source

Fetches the start and end code units column of a value for a particular encoding.

# File prism/relocation.rb, line 298
def fields(value)
  {
    start_code_units_column: value.cached_start_code_units_column(cache),
    end_code_units_column: value.cached_end_code_units_column(cache)
  }
end

Private Instance Methods

cache() click to toggle source

Lazily create a code units cache for the associated encoding.

# File prism/relocation.rb, line 308
def cache
  @cache ||= repository.code_units_cache(encoding)
end