Class: Spellr::LineLocation

Inherits:
Object
  • Object
show all
Defined in:
lib/spellr/line_location.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(file = '[String]', line_number = 1, char_offset: 0, byte_offset: 0) ⇒ LineLocation

Returns a new instance of LineLocation.



9
10
11
12
13
14
# File 'lib/spellr/line_location.rb', line 9

def initialize(file = '[String]', line_number = 1, char_offset: 0, byte_offset: 0)
  @filename = file
  @line_number = line_number
  @char_offset = char_offset
  @byte_offset = byte_offset
end

Instance Attribute Details

#byte_offsetObject (readonly)

Returns the value of attribute byte_offset.



7
8
9
# File 'lib/spellr/line_location.rb', line 7

def byte_offset
  @byte_offset
end

#char_offsetObject (readonly)

Returns the value of attribute char_offset.



6
7
8
# File 'lib/spellr/line_location.rb', line 6

def char_offset
  @char_offset
end

#line_numberObject (readonly)

Returns the value of attribute line_number.



5
6
7
# File 'lib/spellr/line_location.rb', line 5

def line_number
  @line_number
end

Instance Method Details

#advance(line) ⇒ Object



28
29
30
31
32
33
# File 'lib/spellr/line_location.rb', line 28

def advance(line)
  LineLocation.new(@filename,
                   line_number + 1,
                   char_offset: char_offset + line.length,
                   byte_offset: byte_offset + line.bytesize)
end

#fileObject



24
25
26
# File 'lib/spellr/line_location.rb', line 24

def file
  @file ||= Spellr::File.wrap(@filename)
end

#file_relative_pathObject



20
21
22
# File 'lib/spellr/line_location.rb', line 20

def file_relative_path
  file.relative_path
end

#to_sObject



16
17
18
# File 'lib/spellr/line_location.rb', line 16

def to_s
  "#{file_relative_path}:#{line_number}"
end