def include?(_, line_num)
      return false if @ranges.empty?

      ranges = @ranges
      ranges.pop while !ranges.empty? && ranges.last.last < line_num
      ranges.last.cover?(line_num) if !ranges.empty?
    end
def include?(_, line_num)
      return false if @ranges.empty?

      ranges = @ranges
      ranges.pop while !ranges.empty? && ranges.last.last < line_num
      ranges.last.cover?(line_num) if !ranges.empty?
    end
@param attributes [Hash<String, String>] the attributes parsed from the
   `include::[]`s attributes slot. It must contain a key `"lines"`.
 Returns `true` if the given line should be included, `false` otherwise.

 @note This method modifies state of this object. It's supposed to be
   called successively with each line of the content being included.
   See {LinenoLinesSelector example}.

 @param line_num [Integer] 1-based *line* number.
 @return [Boolean] `true` to select the *line*, or `false` to reject.