class Pry::Code::CodeRange
@api private
Represents a range of lines in a code listing.
def find_end_index(lines)
-
(Integer)
-
def find_end_index(lines) return end_line if end_line < 0 (lines.index { |loc| loc.lineno > end_line } || 0) - 1 end
def find_start_index(lines)
-
(Integer)
-
def find_start_index(lines) return start_line if start_line < 0 lines.index { |loc| loc.lineno >= start_line } || lines.length end
def force_set_end_line
-
(void)
-
def force_set_end_line if start_line.is_a?(Range) set_end_line_from_range else @end_line ||= start_line end end
def indices(lines)
-
(Array
-)
Parameters:
-
lines
(Array
) --
def indices(lines) [find_start_index(lines), find_end_index(lines)] end
def indices_range(lines)
-
(Range)
-
Parameters:
-
lines
(Array
) --
def indices_range(lines) Range.new(*indices(lines)) end
def initialize(start_line, end_line = nil)
-
end_line
(Integer?
) -- -
start_line
(Integer
) --
def initialize(start_line, end_line = nil) @start_line = start_line @end_line = end_line force_set_end_line end
def set_end_line_from_range
-
(void)
-
def set_end_line_from_range @end_line = start_line.last @end_line -= 1 if start_line.exclude_end? @start_line = start_line.first end