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)


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

def macro?
  macro_name.present?
end

#macro_argumentsArray<String>?

Returns:

  • (Array<String>, nil)


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

def macro_arguments
  parsed_macro.if_present(&:arguments)
end

#macro_nameString?

Returns:

  • (String, nil)


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

def macro_name
  parsed_macro.if_present(&:name)
end

#macro_parserObject



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

def macro_parser
  MACRO_PARSER
end

#macro_valueArray<String>

Returns:

  • (Array<String>)


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

def macro_value
  document.macro_lines(macro_name, macro_arguments)
end

#resultArray<String>

Returns:

  • (Array<String>)


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

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