ExTeal.Naming (ExTeal v0.21.0) View Source

Conveniences for inflecting and working with names in ExTeal.

Link to this section Summary

Functions

Converts String to camel case.

Converts an attribute/form field into its humanize version.

Extracts the resource name from an alias.

Converts String to underscore case.

Removes the given suffix from the name if it exists.

Link to this section Functions

Specs

camelize(String.t()) :: String.t()

Converts String to camel case.

Takes an optional :lower option to return lowerCamelCase.

Examples

iex> ExTeal.Naming.camelize("my_app")
"MyApp"

iex> ExTeal.Naming.camelize("my_app", :lower)
"myApp"

In general, camelize can be thought of as the reverse of underscore, however, in some cases formatting may be lost:

ExTeal.Naming.underscore "SAPExample"  #=> "sap_example"
ExTeal.Naming.camelize   "sap_example" #=> "SapExample"

Specs

camelize(String.t(), :lower) :: String.t()

Specs

humanize(atom() | String.t()) :: String.t()

Converts an attribute/form field into its humanize version.

iex> ExTeal.Naming.humanize(:username)
"Username"
iex> ExTeal.Naming.humanize(:created_at)
"Created at"
iex> ExTeal.Naming.humanize("user_id")
"User"
Link to this function

resource_name(alias, suffix \\ "")

View Source

Specs

resource_name(String.Chars.t(), String.t()) :: String.t()

Extracts the resource name from an alias.

Examples

iex> ExTeal.Naming.resource_name(MyApp.User)
"user"

iex> ExTeal.Naming.resource_name(MyApp.UserView, "View")
"user"

Specs

underscore(String.t()) :: String.t()

Converts String to underscore case.

Examples

iex> ExTeal.Naming.underscore("MyApp")
"my_app"

In general, underscore can be thought of as the reverse of camelize, however, in some cases formatting may be lost:

ExTeal.Naming.underscore "SAPExample"  #=> "sap_example"
ExTeal.Naming.camelize   "sap_example" #=> "SapExample"

Specs

unsuffix(String.t(), String.t()) :: String.t()

Removes the given suffix from the name if it exists.

Examples

iex> ExTeal.Naming.unsuffix("MyApp.User", "View")
"MyApp.User"

iex> ExTeal.Naming.unsuffix("MyApp.UserView", "View")
"MyApp.User"