petrovich_elixir v0.1.1 Petrovich View Source
Documentation for Petrovich.
Public interface to all the functions. It can inflect first, middle, and last names. It also can detect gender by name.
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
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, "Кире"}
The same as firstname/3
, but raises ParseException
on errors.
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, "Гореве"}
The same as lastname/3
, but raises ParseException
on errors.
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, "Викторовне"}
The same as middlename/3
, but raises ParseException
on errors.
Called when an application is started.
This function is called when an the 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 mode 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
.