Class: Astel::Location

Inherits:
Data
  • Object
show all
Defined in:
lib/astel/location.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#end_columnObject (readonly)

Returns the value of attribute end_column

Returns:

  • (Object)

    the current value of end_column



4
5
6
# File 'lib/astel/location.rb', line 4

def end_column
  @end_column
end

#end_lineObject (readonly)

Returns the value of attribute end_line

Returns:

  • (Object)

    the current value of end_line



4
5
6
# File 'lib/astel/location.rb', line 4

def end_line
  @end_line
end

#end_offsetObject (readonly)

Returns the value of attribute end_offset

Returns:

  • (Object)

    the current value of end_offset



4
5
6
# File 'lib/astel/location.rb', line 4

def end_offset
  @end_offset
end

#start_columnObject (readonly)

Returns the value of attribute start_column

Returns:

  • (Object)

    the current value of start_column



4
5
6
# File 'lib/astel/location.rb', line 4

def start_column
  @start_column
end

#start_lineObject (readonly)

Returns the value of attribute start_line

Returns:

  • (Object)

    the current value of start_line



4
5
6
# File 'lib/astel/location.rb', line 4

def start_line
  @start_line
end

#start_offsetObject (readonly)

Returns the value of attribute start_offset

Returns:

  • (Object)

    the current value of start_offset



4
5
6
# File 'lib/astel/location.rb', line 4

def start_offset
  @start_offset
end

Class Method Details

.from(location) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/astel/location.rb', line 5

def self.from(location)
  return location if location.is_a?(self)

  new(
    start_offset: location.start_offset,
    end_offset: location.end_offset,
    start_line: location.start_line,
    start_column: location.start_column,
    end_line: location.end_line,
    end_column: location.end_column
  )
end

.point(offset:, line:, column:) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/astel/location.rb', line 18

def self.point(offset:, line:, column:)
  new(
    start_offset: offset,
    end_offset: offset,
    start_line: line,
    start_column: column,
    end_line: line,
    end_column: column
  )
end

Instance Method Details

#lengthObject



29
30
31
# File 'lib/astel/location.rb', line 29

def length
  end_offset - start_offset
end

#rangeObject



33
34
35
# File 'lib/astel/location.rb', line 33

def range
  start_offset...end_offset
end