mirror of
				https://github.com/avitex/elixir-vultr
				synced 2025-11-03 23:53:28 +00:00 
			
		
		
		
	Clean up documentation helpers
This commit is contained in:
		
							parent
							
								
									a1f08f09f0
								
							
						
					
					
						commit
						3fb6a65ddb
					
				@ -151,54 +151,40 @@ defmodule Vultr.Request do
 | 
				
			|||||||
	# Documentation helpers
 | 
						# Documentation helpers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	defp gen_doc(method, path, desc, params, required_access, api_key) do
 | 
						defp gen_doc(method, path, desc, params, required_access, api_key) do
 | 
				
			||||||
 | 
							summary_table = doc_table([
 | 
				
			||||||
 | 
								["Method", "Path", "API Key", "Required Access"],
 | 
				
			||||||
 | 
								["------", "----", "-------", "---------------"],
 | 
				
			||||||
 | 
								[doc_method(method), path, doc_api_key(api_key), doc_required_access(required_access)],
 | 
				
			||||||
 | 
							])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							params_rows = Enum.map(params, &[
 | 
				
			||||||
 | 
								"`#{String.downcase(&1.name)}`",
 | 
				
			||||||
 | 
								&1.type_string,
 | 
				
			||||||
 | 
								doc_optional_default(&1.optional, &1.default),
 | 
				
			||||||
 | 
								String.replace(&1.desc, "\n", "<br>"),
 | 
				
			||||||
 | 
							])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							params_table = doc_table([
 | 
				
			||||||
 | 
								["Name", "Type", "Optional", "Description"],
 | 
				
			||||||
 | 
								["----", "----", "--------", "-----------"],
 | 
				
			||||||
 | 
							] ++ params_rows)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		"""
 | 
							"""
 | 
				
			||||||
		#{desc}
 | 
							#{desc}
 | 
				
			||||||
		#{doc_params(params)}
 | 
							#{summary_table}
 | 
				
			||||||
		### Backend
 | 
							#### Params
 | 
				
			||||||
		- Method:           `#{doc_method(method)}`
 | 
							#{params_table}
 | 
				
			||||||
		- Path:             `#{path}`
 | 
					 | 
				
			||||||
		- API Key:          `#{doc_api_key(api_key)}`
 | 
					 | 
				
			||||||
		- Required Access:  `#{doc_required_access(required_access)}`
 | 
					 | 
				
			||||||
		"""
 | 
							"""
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	defp doc_params([]), do: ""
 | 
					 | 
				
			||||||
	defp doc_params(params) do
 | 
					 | 
				
			||||||
		param_rows =
 | 
					 | 
				
			||||||
			params
 | 
					 | 
				
			||||||
			|> Enum.map(&doc_param/1)
 | 
					 | 
				
			||||||
			|> Enum.join("")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		"""
 | 
					 | 
				
			||||||
		### Params
 | 
					 | 
				
			||||||
		| Name | Type | Optional | Description |
 | 
					 | 
				
			||||||
		| ---- | ---- | -------- | ----------- |
 | 
					 | 
				
			||||||
		#{param_rows}
 | 
					 | 
				
			||||||
		"""
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	defp doc_param(param) do
 | 
					 | 
				
			||||||
		columns = [
 | 
					 | 
				
			||||||
			"`#{String.downcase(param.name)}`",
 | 
					 | 
				
			||||||
			param.type_string,
 | 
					 | 
				
			||||||
			doc_optional_default(param.optional, param.default),
 | 
					 | 
				
			||||||
			String.replace(param.desc, "\n", "<br>"),
 | 
					 | 
				
			||||||
		]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		"| #{Enum.join(columns, " | ")} |"
 | 
					 | 
				
			||||||
	end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	defp doc_optional_default(optional, default) do
 | 
						defp doc_optional_default(optional, default) do
 | 
				
			||||||
		if optional do
 | 
							cond do
 | 
				
			||||||
			optional = "Yes"
 | 
								optional && is_nil(default) ->
 | 
				
			||||||
			
 | 
									"Yes"
 | 
				
			||||||
			if default == nil do
 | 
								optional ->
 | 
				
			||||||
				optional
 | 
									"<br>(Default `#{inspect default}`)"
 | 
				
			||||||
			else
 | 
								true ->
 | 
				
			||||||
				optional <> "<br>(Default `#{inspect default}`)"
 | 
									"No"
 | 
				
			||||||
			end
 | 
					 | 
				
			||||||
		else
 | 
					 | 
				
			||||||
			"No"
 | 
					 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -210,5 +196,9 @@ defmodule Vultr.Request do
 | 
				
			|||||||
	defp doc_required_access(nil), do: "None"
 | 
						defp doc_required_access(nil), do: "None"
 | 
				
			||||||
	defp doc_required_access(atm), do: Atom.to_string(atm)
 | 
						defp doc_required_access(atm), do: Atom.to_string(atm)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						defp doc_table(rows), do: Enum.map(rows, &doc_table_columns/1) |> Enum.join
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
						defp doc_table_columns(columns), do: "| #{Enum.join(columns, " | ")} |\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	defp atom_to_word(atm), do: atm |> Atom.to_string |> String.capitalize
 | 
						defp atom_to_word(atm), do: atm |> Atom.to_string |> String.capitalize
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user