Method: WLST::ArgParser#parse

Defined in:
lib/wlst/wlst.rb

#parse(*args) ⇒ Object



119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/wlst/wlst.rb', line 119

def parse *args
  params = {}
  args.each do |arg|
    value = arg.split '='
    key = value.delete_at(0).gsub('-', '_')
    definition = @definitions[key]
    converter = @converter[definition['type'].to_sym]
    value = value.join('=')
    params[key] = converter.call value if converter
    params[key] ||= value
  end
  @definitions.each do |name, defs|
    unless params.has_key? name
      raise "#{name} not specified" if defs['required']
      converter = @converter[defs['type'].to_sym]
      params[name] = converter.call defs['default'] if converter
      params[name] ||= defs['default']
    end
  end
  params
end