def generate_params_code(params, indent = "")
code = ""
params.sort_by {|n,_| n }.each do |(name, desc)|
desc[:type] = (desc[:type] && desc[:type].first) || Object
code << "#{indent}param"
if name =~ /\W/
code << " :\"#{name}\""
else
code << " :#{name}"
end
code << ", #{desc[:type].inspect}"
if desc[:allow_nil]
code << ", :allow_nil => true"
end
if desc[:required]
code << ", :required => true"
end
if desc[:nested]
code << " do\n"
code << generate_params_code(desc[:nested], indent + " ")
code << "#{indent}end"
else
end
code << "\n"
end
code
end