lib/rubocop/ast/ext/range.rb
# frozen_string_literal: true
module RuboCop
module AST
module Ext
# Extensions to Parser::AST::Range
module Range
# @return [Range] the range of line numbers for the node
# If `exclude_end` is `true`, then the range will be exclusive.
#
# Assume that `node` corresponds to the following array literal:
#
# [
# :foo,
# :bar
# ]
#
# node.loc.begin.line_span # => 1..1
# node.source_range.line_span(exclude_end: true) # => 1...4
def line_span(exclude_end: false)
::Range.new(first_line, last_line, exclude_end)
end
end
end
end
end
Parser::Source::Range.include RuboCop::AST::Ext::Range