README.md
# Demand
A prompt library for Elixir. Port of [demand](https://github.com/jdx/demand).
## Installation
Add `demand` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:demand, "~> 0.1.0"}
]
end
```
## Usage
Check the `examples/` directory for runnable examples.
### Input
```elixir
alias Demand.Input
Input.new("What's your name?")
|> Input.run()
```
### Select
```elixir
alias Demand.Select
Select.new("Choose a color")
|> Select.option("Red")
|> Select.option("Blue")
|> Select.option("Green")
|> Select.run()
```
### MultiSelect
```elixir
alias Demand.MultiSelect
MultiSelect.new("Choose toppings")
|> MultiSelect.option("Cheese")
|> MultiSelect.option("Pepperoni")
|> MultiSelect.option("Mushrooms")
|> MultiSelect.run()
```
### Confirm
```elixir
alias Demand.Confirm
Confirm.new("Are you sure?")
|> Confirm.run()
```
### Dialog
```elixir
alias Demand.Dialog
Dialog.new("Are you sure?")
|> Dialog.buttons(["Yes", "No"])
|> Dialog.run()
```
### List
```elixir
alias Demand.List
List.new("Items")
|> List.item("Item 1")
|> List.item("Item 2")
|> List.run()
```
### Spinner
```elixir
alias Demand.Spinner
Spinner.new("Loading...")
|> Spinner.run(fn -> :timer.sleep(1000) end)
```