Sha256: efbeee6933c6acabfec22d37bee2632ff620ca759d26932dfc87e73b93c0db39

Contents?: true

Size: 956 Bytes

Versions: 2

Compression:

Stored size: 956 Bytes

Contents

# frozen_string_literal: true

module Asciidoctor::Reducer
  module ConditionalDirectiveTracker
    def preprocess_conditional_directive keyword, target, delimiter, text
      skip_active = @skipping
      depth = @conditional_stack.size
      directive_lineno = @lineno
      result = super
      return result if @skipping && skip_active
      curr_inc_replacement = @include_replacements.current
      drop = curr_inc_replacement[:drop] ||= []
      adjusted_directive_lineno = directive_lineno - (curr_inc_replacement[:offset] ||= 0)
      if (depth_change = @conditional_stack.size - depth) < 0
        if skip_active
          drop.push(*(drop.pop..adjusted_directive_lineno))
        else
          drop << adjusted_directive_lineno
        end
      elsif depth_change > 0 || directive_lineno == @lineno
        drop << adjusted_directive_lineno
      else
        drop << [adjusted_directive_lineno, text]
      end
      result
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
asciidoctor-reducer-1.1.0 lib/asciidoctor/reducer/conditional_directive_tracker.rb
asciidoctor-reducer-1.0.6 lib/asciidoctor/reducer/conditional_directive_tracker.rb