@@ -154,11 +154,11 @@ defmodule Scribe do
154154 - `:width` - Defines table width. Defaults to `:infinite`
155155 """
156156 @ type format_opts :: [
157- alignment: atom ,
158- colorize: boolean ,
157+ alignment: atom ( ) ,
158+ colorize: boolean ( ) ,
159159 data: [ ... ] ,
160- style: module ,
161- width: integer
160+ style: module ( ) ,
161+ width: integer ( )
162162 ]
163163
164164 @ doc ~S"""
@@ -177,21 +177,21 @@ defmodule Scribe do
177177 +----------+---------+
178178 :ok
179179 """
180- @ spec print ( data , format_opts ) :: :ok
180+ @ spec print ( data ( ) , format_opts ( ) ) :: :ok
181181 def print ( _results , opts \\ [ ] )
182182
183183 def print ( [ ] , _opts ) , do: :ok
184184
185185 def print ( results , opts ) do
186- dev = opts |> Keyword . get ( :device , :stdio )
187- results = results |> format ( opts )
188- dev |> IO . puts ( results )
186+ dev = Keyword . get ( opts , :device , :stdio )
187+ results = format ( results , opts )
188+ IO . puts ( dev , results )
189189 end
190190
191191 @ doc ~S"""
192192 Paginates data and starts a pseudo-interactive console.
193193 """
194- @ spec console ( data , format_opts ) :: no_return
194+ @ spec console ( data ( ) , format_opts ( ) ) :: :ok
195195 def console ( results , opts \\ [ ] ) do
196196 results
197197 |> format ( opts )
@@ -216,7 +216,7 @@ defmodule Scribe do
216216 +----------+---------+
217217 %{test: 1234, key: :value}
218218 """
219- @ spec inspect ( data , format_opts ) :: data
219+ @ spec inspect ( data ( ) , format_opts ( ) ) :: data ( )
220220 def inspect ( results , opts \\ [ ] ) do
221221 print ( results , opts )
222222 results
@@ -233,7 +233,7 @@ defmodule Scribe do
233233 iex> format(%{test: 1234}, colorize: false)
234234 "+---------+\n| :test |\n+---------+\n| 1234 |\n+---------+\n"
235235 """
236- @ spec format ( data ) :: String . t ( ) | :ok
236+ @ spec format ( data ( ) , format_opts ( ) ) :: String . t ( ) | :ok
237237 def format ( _results , opts \\ [ ] )
238238 def format ( [ ] , _opts ) , do: :ok
239239
@@ -251,24 +251,31 @@ defmodule Scribe do
251251 Table . format ( table , Enum . count ( table ) , Enum . count ( keys ) , opts )
252252 end
253253
254+ @ spec map_string_values ( [ map ( ) ] ) :: [ term ( ) ]
254255 defp map_string_values ( keys ) , do: Enum . map ( keys , & string_value ( & 1 ) )
256+
257+ @ spec map_string_values ( map ( ) | struct ( ) , [ map ( ) ] ) :: [ term ( ) ]
255258 defp map_string_values ( row , keys ) , do: Enum . map ( keys , & string_value ( row , & 1 ) )
256259
260+ @ spec string_value ( map ( ) ) :: term ( )
257261 defp string_value ( % { name: name , key: _key } ) do
258262 name
259263 end
260264
265+ @ spec string_value ( map ( ) | struct ( ) , map ( ) ) :: term ( )
261266 defp string_value ( map , % { name: _name , key: key } ) when is_function ( key ) do
262- map |> key . ( )
267+ key . ( map )
263268 end
264269
265270 defp string_value ( map , % { name: _name , key: key } ) do
266- map |> Map . get ( key )
271+ Map . get ( map , key )
267272 end
268273
274+ @ spec fetch_keys ( [ map ( ) | struct ( ) ] , list ( ) | nil ) :: [ map ( ) ]
269275 defp fetch_keys ( [ first | _rest ] , nil ) , do: fetch_keys ( first )
270276 defp fetch_keys ( _list , opts ) , do: process_headers ( opts )
271277
278+ @ spec process_headers ( list ( ) ) :: [ map ( ) ]
272279 defp process_headers ( opts ) do
273280 for opt <- opts do
274281 case opt do
@@ -278,6 +285,7 @@ defmodule Scribe do
278285 end
279286 end
280287
288+ @ spec fetch_keys ( map ( ) | struct ( ) ) :: [ map ( ) ]
281289 defp fetch_keys ( map ) do
282290 map
283291 |> Map . keys ( )
0 commit comments