Class: Prism::ASCIISource
Overview
Specialized version of Prism::Source for source code that includes ASCII characters only. This class is used to apply performance optimizations that cannot be applied to sources that include multibyte characters. Sources that include multibyte characters are represented by the Prism::Source class.
Instance Attribute Summary
Attributes inherited from Source
#offsets, #source, #start_line
Instance Method Summary collapse
-
#character_column(byte_offset) ⇒ Object
Return the column number in characters for the given byte offset.
-
#character_offset(byte_offset) ⇒ Object
Return the character offset for the given byte offset.
-
#code_units_column(byte_offset, encoding) ⇒ Object
Specialized version of ‘code_units_column` that does not depend on `code_units_offset`, which is a more expensive operation.
-
#code_units_offset(byte_offset, encoding) ⇒ Object
Returns the offset from the start of the file for the given byte offset counting in code units for the given encoding.
Methods inherited from Source
#column, #encoding, for, #initialize, #line, #line_end, #line_start, #lines, #slice
Constructor Details
This class inherits a constructor from Prism::Source
Instance Method Details
#character_column(byte_offset) ⇒ Object
Return the column number in characters for the given byte offset.
142 143 144 |
# File 'lib/prism/parse_result.rb', line 142 def character_column(byte_offset) byte_offset - line_start(byte_offset) end |
#character_offset(byte_offset) ⇒ Object
Return the character offset for the given byte offset.
137 138 139 |
# File 'lib/prism/parse_result.rb', line 137 def character_offset(byte_offset) byte_offset end |
#code_units_column(byte_offset, encoding) ⇒ Object
Specialized version of ‘code_units_column` that does not depend on `code_units_offset`, which is a more expensive operation. This is essentialy the same as `Prism::Source#column`.
159 160 161 |
# File 'lib/prism/parse_result.rb', line 159 def code_units_column(byte_offset, encoding) byte_offset - line_start(byte_offset) end |
#code_units_offset(byte_offset, encoding) ⇒ Object
Returns the offset from the start of the file for the given byte offset counting in code units for the given encoding.
This method is tested with UTF-8, UTF-16, and UTF-32. If there is the concept of code units that differs from the number of characters in other encodings, it is not captured here.
152 153 154 |
# File 'lib/prism/parse_result.rb', line 152 def code_units_offset(byte_offset, encoding) byte_offset end |