Current section

Files

Jump to
scribe lib border.ex
Raw

lib/border.ex

defmodule Scribe.Border do
@moduledoc ~S"""
Defines border and edge symbols for a table cell.
## Example Usage
When printed, a cell with a border of `Scribe.Border.new("+", "|", "-")`
would look like:
```
+--------+
| "test" |
+--------+
```
"""
defstruct top_left_corner: "",
top_edge: "",
top_right_corner: "",
right_edge: "",
bottom_right_corner: "",
bottom_edge: "",
bottom_left_corner: "",
left_edge: ""
@type t :: %__MODULE__{
top_left_corner: String.t(),
top_edge: String.t(),
top_right_corner: String.t(),
right_edge: String.t(),
bottom_right_corner: String.t(),
bottom_edge: String.t(),
bottom_left_corner: String.t(),
left_edge: String.t()
}
@doc ~S"""
Defines a new `Border.t` with given corner and edges.
## Examples
iex> new("+", "|", "-")
%Scribe.Border{
top_left_corner: "+",
top_edge: "-",
top_right_corner: "+",
right_edge: "|",
bottom_right_corner: "+",
bottom_edge: "-",
bottom_left_corner: "+",
left_edge: "|"
}
"""
@spec new(String.t(), String.t(), String.t()) :: t
def new(corner, v_edge, h_edge) do
%__MODULE__{
top_left_corner: corner,
top_edge: h_edge,
top_right_corner: corner,
right_edge: v_edge,
bottom_right_corner: corner,
bottom_edge: h_edge,
bottom_left_corner: corner,
left_edge: v_edge
}
end
end