Class: Avm::EacAsciidoctorBase0::Instances::Build::Document::PreProcessLine

Inherits:
Object
  • Object
show all
Defined in:
lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb

Constant Summary collapse

ARGUMENT_SEPARATOR =
','
MACRO_PARSER =
%r{\A\s*//\#(\S+)(?:\s+(.+))?\s*?\z}.to_parser do |m|
  ::Struct.new(:name, :arguments).new(m[1],
                                      m[2].to_s.split(ARGUMENT_SEPARATOR).map(&:strip))
end

Instance Method Summary collapse

Instance Method Details

#macro?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb', line 31

def macro?
  macro_name.present?
end

#macro_argumentsArray<String>?

Returns:

  • (Array<String>, nil)


36
37
38
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb', line 36

def macro_arguments
  parsed_macro.if_present(&:arguments)
end

#macro_nameString?

Returns:

  • (String, nil)


41
42
43
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb', line 41

def macro_name
  parsed_macro.if_present(&:name)
end

#macro_parserObject



45
46
47
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb', line 45

def macro_parser
  MACRO_PARSER
end

#macro_valueArray<String>

Returns:

  • (Array<String>)


50
51
52
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb', line 50

def macro_value
  document.macro_lines(macro_name, macro_arguments)
end

#resultArray<String>

Returns:

  • (Array<String>)


23
24
25
26
27
28
29
# File 'lib/avm/eac_asciidoctor_base0/instances/build/document/pre_process_line.rb', line 23

def result
  if macro?
    macro_value
  else
    [line]
  end
end