def add(param_name, value, override = false)
if value.class == Hash
if self.params.has_key?(param_name)
if self.params[param_name].class == Hash
if override
self.params[param_name] = value
else
self.params[param_name].merge!(value)
end
elsif self.params.has_key?(param_name)
if self.params[param_name].class != value.class
raise ArgumentError, "#{param_name} already exists, and is of different type!"
end
end
else
self.params[param_name] = value
end
if ! self.groups.include?(param_name)
self.groups.push(param_name)
end
else
self.params[param_name] = value
end
end