Sha256: 74af78c5a03626ee350636ae77dc2ad15b9fd3b0cd47d13d676ac8a120fb7f54

Contents?: true

Size: 1.03 KB

Versions: 41

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module EacAsciidoctorBase0
    module Instances
      class Build
        class Document
          class PreProcessLine
            enable_method_class
            enable_simple_cache

            MACRO_PARSER = %r{\A\s*//\#(\S+.*)}.to_parser do |m|
              m[1]
            end

            common_constructor :document, :line

            # @return [Array<String>]
            def result
              if macro?
                macro_value
              else
                [line]
              end
            end

            def macro?
              macro_name.present?
            end

            def macro_parser
              MACRO_PARSER
            end

            # @return [Array<String>]
            def macro_value
              document.send("#{macro_name}_macro_value")
            end

            private

            def macro_name_uncached
              macro_parser.parse(line)
            end
          end
        end
      end
    end
  end
end

Version data entries

41 entries across 41 versions & 2 rubygems

Version Path
eac_tools-0.60.3 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.60.2 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
avm-eac_asciidoctor_base0-0.18.1 lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.60.1 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
avm-eac_asciidoctor_base0-0.18.0 lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.60.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
avm-eac_asciidoctor_base0-0.17.0 lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.59.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.58.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
avm-eac_asciidoctor_base0-0.16.0 lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.57.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.56.1 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.56.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.55.7 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.55.6 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.55.5 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.55.4 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.55.3 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.55.2 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb
eac_tools-0.55.1 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb