def include?(line, line_num)
      tag_type, tag_name = parse_tag_directive(line)

      case tag_type
      when :start
        enter_region!(tag_name, line_num)
        false
      when :end
        exit_region!(tag_name, line_num)
        false
      when nil
        if @state && @first_included_lineno.nil?
          @first_included_lineno = line_num
        end
        @state
      end
    end
def include?(line, line_num)
      tag_type, tag_name = parse_tag_directive(line)

      case tag_type
      when :start
        enter_region!(tag_name, line_num)
        false
      when :end
        exit_region!(tag_name, line_num)
        false
      when nil
        if @state && @first_included_lineno.nil?
          @first_included_lineno = line_num
        end
        @state
      end
    end
@param target [String] name of the source file to include as specified
   in the target slot of the `include::[]` directive.
 @param attributes [Hash<String, String>] the attributes parsed from the
   `include::[]`s attributes slot. It must contain a key `"tag"` or `"tags"`.
 @param logger [Logger]
 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 {TagLinesSelector example}.

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