JediHelpers

A collection of general-purpose helpers for Elixir projects, designed to make your codebase cleaner and more reusable. Includes utilities for working with changesets and common functional patterns.

Features

Usage

Each public function includes a use case and its resulting value in the API documentation. A few common Phoenix examples are shown below.

Normalize form input

types = %{name: :string, email: :string}
changeset =
{%{}, types}
|> Ecto.Changeset.cast(%{"name" => " Leia ", "email" => " "}, [:name, :email])
|> JediHelpers.ChangesetHelpers.normalize_strings([:name, :email])
changeset.changes
# => %{email: nil, name: "Leia"}

Build select options

users = [%{id: 1, name: "Leia"}, %{id: 2, name: "Luke"}]
JediHelpers.FormHelpers.options_for(users, :name)
# => [{"Leia", 1}, {"Luke", 2}]

Parse imported dates

JediHelpers.DateUtils.to_date("2024-1-9")
# => ~D[2024-01-09]
JediHelpers.DateUtils.to_date("invalid")
# => nil

Format values for display

JediHelpers.format_decimal("1234.5")
# => "1,234.50"
JediHelpers.format_money("1234.56", :php)
# => "₱1,234.56"
JediHelpers.number_to_words(42)
# => "forty-two"

Installation

Add :jedi_helpers to your list of dependencies in mix.exs:

def deps do
[
{:jedi_helpers, "~> 0.3.1"}
]
end

Generate the complete API documentation locally with:

mix docs

Published documentation is available on HexDocs.