Class: Markdownplus::Literals::FunctionLiteral

Inherits:
ExpressionLiteral
  • Object
show all
Defined in:
lib/markdownplus/literals.rb

Instance Method Summary collapse

Methods inherited from ExpressionLiteral

#_functions, #functions, #parens, #symbols

Instance Method Details

#execute(input, variables, warnings, errors) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/markdownplus/literals.rb', line 45

def execute(input, variables, warnings, errors)
  handler = HandlerRegistry.handler_instance(self.function_name)
  if handler
    output = handler.execute(input, self.function_parameter_values(nil, variables, warnings, errors), variables, warnings, errors)
  else
    errors << "No handler defined for [#{self.function_name}]"
  end
  output
end

#function_nameObject



33
34
35
# File 'lib/markdownplus/literals.rb', line 33

def function_name
  self.symbols[0].text_value.strip
end

#function_parameter_values(input, variables, warnings, errors) ⇒ Object



41
42
43
# File 'lib/markdownplus/literals.rb', line 41

def function_parameter_values(input, variables, warnings, errors)
  self.parens.first.function_parameters.collect { |fp| fp.value(input, variables, warnings, errors) }
end

#function_parametersObject



37
38
39
# File 'lib/markdownplus/literals.rb', line 37

def function_parameters
  self.parens.first.function_parameters
end

#value(input, variables, warnings, errors) ⇒ Object



55
56
57
# File 'lib/markdownplus/literals.rb', line 55

def value(input, variables, warnings, errors)
  execute(input, variables, warnings, errors)
end