Method: TermUtils::AP::Syntax#define_parameter

Defined in:
lib/term_utils/ap/syntax.rb

#define_parameter(id = nil, opts = {}, &block) ⇒ Parameter

Creates and adds a new Parameter.

Parameters:

  • id (Symbol, nil) (defaults to: nil)
  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :id (Symbol)
  • :min_occurs (Integer)
  • :max_occurs (Integer)

Returns:



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/term_utils/ap/syntax.rb', line 54

def define_parameter(id = nil, opts = {}, &block)
  if id
    param = @parameters.find { |p| p.id == id }
    if param
      block.call(param) if block
      return param
    end

    opts[:id] = id
  end
  new_parameter = TermUtils::AP::Parameter.new(opts)
  @parameters << new_parameter
  block.call(new_parameter) if block
  new_parameter
end