petrovich_elixir v1.0.0 Petrovich View Source
Documentation for Petrovich.
Public interface to all the functions. It can inflect first, middle, and last names.
List of cases
Here's a quick reminder:
nomenative: именительный
genitive: родительный
dative: дательный
accusative: винительный
instrumental: творительный
prepositional: предложный
Link to this section Summary
Functions
Inflects first name.
The same as firstname/3
, but raises ParseException
on errors.
Inflects last name.
The same as lastname/3
, but raises ParseException
on errors.
Inflects middle name.
The same as middlename/3
, but raises ParseException
on errors.
Called when an application is started.
Link to this section Functions
firstname(name, case_, gender \\ nil) View Source
Inflects first name.
This function is used to inflect a first name. It accepts three arguments:
name
a person's first namecase_
atom, one of the atoms with the case name- optional
gender
, since it could be detected from name
It returns {:ok, inflected_name}
or :error
Examples
iex> Petrovich.firstname("Кира", :dative)
{:ok, "Кире"}
firstname!(name, case_, gender \\ nil) View Source
The same as firstname/3
, but raises ParseException
on errors.
lastname(name, case_, gender \\ nil) View Source
Inflects last name.
This function is used to inflect a last name. It accepts three arguments:
name
a person's last namecase_
atom, one of the atoms with the case name- optional
gender
, since it could be detected from name
It returns {:ok, inflected_name}
or :error
Examples
iex> Petrovich.firstname("Горева", :dative)
{:ok, "Гореве"}
lastname!(name, case_, gender \\ nil) View Source
The same as lastname/3
, but raises ParseException
on errors.
middlename(name, case_, gender \\ nil) View Source
Inflects middle name.
This function is used to inflect a middle name. It accepts three arguments:
name
a person's middle namecase_
atom, one of the atoms with the case name- optional
gender
, since it could be detected from name
It returns {:ok, inflected_name}
or :error
Examples
iex> Petrovich.firstname("Викторовна", :dative)
{:ok, "Викторовне"}
middlename!(name, case_, gender \\ nil) View Source
The same as middlename/3
, but raises ParseException
on errors.
start(type, args) View Source
Called when an application is started.
This function is called when an application is started using
Application.start/2
(and functions on top of that, such as
Application.ensure_started/2
). This function should start the top-level
process of the application (which should be the top supervisor of the
application's supervision tree if the application follows the OTP design
principles around supervision).
start_type
defines how the application is started:
:normal
- used if the startup is a normal startup or if the application is distributed and is started on the current node because of a failover from another node and the application specification key:start_phases
is:undefined
.{:takeover, node}
- used if the application is distributed and is started on the current node because of a failover on the nodenode
.{:failover, node}
- used if the application is distributed and is started on the current node because of a failover on nodenode
, and the application specification key:start_phases
is not:undefined
.
start_args
are the arguments passed to the application in the :mod
specification key (e.g., mod: {MyApp, [:my_args]}
).
This function should either return {:ok, pid}
or {:ok, pid, state}
if
startup is successful. pid
should be the PID of the top supervisor. state
can be an arbitrary term, and if omitted will default to []
; if the
application is later stopped, state
is passed to the stop/1
callback (see
the documentation for the c:stop/1
callback for more information).
use Application
provides no default implementation for the start/2
callback.
Callback implementation for Application.start/2
.