123456789_123456789_123456789_123456789_123456789_

Class: Prism::Relocation::Entry

Relationships & Source Files
Namespace Children
Exceptions:
Inherits: Object
Defined in: lib/prism/relocation.rb

Overview

An entry in a repository that will lazily reify its values when they are first accessed.

Class Method Summary

Instance Method Summary

Constructor Details

.new(repository) ⇒ Entry

Initialize a new entry with the given repository.

: (Repository repository) -> void

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 57

def initialize(repository)
  @repository = repository
  @values = nil
end

Instance Method Details

#end_character_column

Fetch the end character column of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 151

def end_character_column
  fetch_value(:end_character_column)
end

#end_character_offset

Fetch the end character offset of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 107

def end_character_offset
  fetch_value(:end_character_offset)
end

#end_code_units_column

Fetch the end code units column of the value, for the encoding that was configured on the repository.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 167

def end_code_units_column
  fetch_value(:end_code_units_column)
end

#end_code_units_offset

Fetch the end code units offset of the value, for the encoding that was configured on the repository.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 123

def end_code_units_offset
  fetch_value(:end_code_units_offset)
end

#end_column

Fetch the end byte column of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 137

def end_column
  fetch_value(:end_column)
end

#end_line

Fetch the end line of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 79

def end_line
  fetch_value(:end_line)
end

#end_offset

Fetch the end byte offset of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 93

def end_offset
  fetch_value(:end_offset)
end

#fetch_value(name) (private)

Fetch a value from the entry, raising an error if it is missing.

: (Symbol name) -> entry_value

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 186

def fetch_value(name)
  values.fetch(name) do
    raise MissingValueError, "No value for #{name}, make sure the " \
      "repository has been properly configured"
  end
end

#filepath

Fetch the filepath of the value.

: () -> String

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 65

def filepath
  fetch_value(:filepath)
end

#reify!(values)

This method is for internal use only.

Reify the values on this entry with the given values. This is an internal-only API that is called from the repository when it is time to reify the values.

: (entry_values values) -> void

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 176

def reify!(values) # :nodoc:
  @repository = nil
  @values = values
end

#start_character_column

Fetch the start character column of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 144

def start_character_column
  fetch_value(:start_character_column)
end

#start_character_offset

Fetch the start character offset of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 100

def start_character_offset
  fetch_value(:start_character_offset)
end

#start_code_units_column

Fetch the start code units column of the value, for the encoding that was configured on the repository.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 159

def start_code_units_column
  fetch_value(:start_code_units_column)
end

#start_code_units_offset

Fetch the start code units offset of the value, for the encoding that was configured on the repository.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 115

def start_code_units_offset
  fetch_value(:start_code_units_offset)
end

#start_column

Fetch the start byte column of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 130

def start_column
  fetch_value(:start_column)
end

#start_line

Fetch the start line of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 72

def start_line
  fetch_value(:start_line)
end

#start_offset

Fetch the start byte offset of the value.

: () -> Integer

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 86

def start_offset
  fetch_value(:start_offset)
end

#values (private)

Return the values from the repository, reifying them if necessary.

: () -> entry_values

[ GitHub ]

  
# File 'lib/prism/relocation.rb', line 196

def values
  @values || (@repository&.reify!; @values) #: entry_values
end