Phoenix.Naming
Conveniences for inflecting and working with names in Phoenix.
Summary↑
base_concat(mod, submodule \\ nil) | Finds the Base Namespace of the module with optional concat |
camelize(value) | Converts String to camel case |
resource_name(alias, suffix \\ "") | Extracts the resource name from an alias |
underscore(value) | Converts String to underscore case |
unsuffix(value, suffix) | Removes the given suffix from the name if it exists |
Functions
Finds the Base Namespace of the module with optional concat.
Examples
iex> Phoenix.Naming.base_concat(MyApp.MyChannel)
MyApp
iex> Phoenix.Naming.base_concat(MyApp.Admin.MyChannel, PubSub)
MyApp.PubSub
iex> Phoenix.Naming.base_concat(MyApp.Admin.MyChannel, "PubSub")
MyApp.PubSub
Specs:
- camelize(String.Chars.t) :: String.t
Converts String to camel case.
Examples
iex> Phoenix.Naming.camelize("my_app")
"MyApp"
iex> Phoenix.Naming.camelize(:my_app)
"MyApp"
In general, camelize
can be thought of as the reverse of
underscore
, however, in some cases formatting may be lost:
Phoenix.Naming.underscore "SAPExample" #=> "sap_example"
Phoenix.Naming.camelize "sap_example" #=> "SapExample"
Specs:
- resource_name(String.Chars.t, String.t) :: String.t
Extracts the resource name from an alias.
Examples
iex> Phoenix.Naming.resource_name(MyApp.User)
"user"
iex> Phoenix.Naming.resource_name(MyApp.UserView, "View")
"user"
Specs:
- underscore(String.Chars.t) :: String.t
Converts String to underscore case.
Examples
iex> Phoenix.Naming.underscore("MyApp")
"my_app"
iex> Phoenix.Naming.underscore(:MyApp)
"my_app"
iex> Phoenix.Naming.underscore("my-app")
"my_app"
In general, underscore
can be thought of as the reverse of
camelize
, however, in some cases formatting may be lost:
Phoenix.Naming.underscore "SAPExample" #=> "sap_example"
Phoenix.Naming.camelize "sap_example" #=> "SapExample"
Specs:
- unsuffix(String.Chars.t, String.t) :: String.t
Removes the given suffix from the name if it exists.
Examples
iex> Phoenix.Naming.unsuffix("MyApp.User", "View")
"MyApp.User"
iex> Phoenix.Naming.unsuffix("MyApp.UserView", "View")
"MyApp.User"