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
|