Module: Musa::Neumalang::Neumalang::Parser::Parameters

Defined in:
lib/musa-dsl/neumalang/neumalang.rb

Instance Method Summary collapse

Instance Method Details

#valueObject



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/musa-dsl/neumalang/neumalang.rb', line 61

def value
  value_parameters = []
  key_value_parameters = {}

  captures(:parameter).each do |pp|
    p = pp.value
    if p.has_key? :key_value
      key_value_parameters.merge! p[:key_value]
    else
      value_parameters << p[:value]
    end
  end

  {}.tap do |_|
    _[:value_parameters] = value_parameters unless value_parameters.empty?
    _[:key_parameters] = key_value_parameters unless key_value_parameters.empty?

    _[:proc_parameter] = capture(:codeblock).value if capture(:codeblock)
  end
end