Transformation: Format the Table
All that’s left from our design is to create the formatted table. This would be a nice interface:
| def process({user, project, count}) do |
| Issues.GithubIssues.fetch(user, project) |
| |> decode_response |
| |> convert_to_list_of_hashdicts |
| |> sort_into_ascending_order |
| |> Enum.take(count) |
* | |> print_table_for_columns(["number", "created_at", "title"]) |
| end |
We pass the formatter the list of columns to include in the table, and it writes the table to standard output.
The formatter doesn’t add any new project- or design-related techniques, so we’ll just list it.
project/4/issues/lib/issues/table_formatter.ex | |
| defmodule Issues.TableFormatter do |
| |
| import Enum, only: [ each: 2, map: 2, map_join: 3, ... |
Get Programming Elixir now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.