View Source WeatherForecast (Vela v1.1.0)
The example of Vela
implementation, demontrating the real-life
module using Vela
for timeseries control.
The full code of this file follows.
defmodule WeatherForecast do
alias WeatherForecast, as: Me
use Vela,
__globals__: [validator: Me],
tomorrow: [limit: 5, errors: 1],
two_days: [limit: 3],
week: [limit: 2, sorter: &Me.sort/2]
@behaviour Vela.Validator
@impl Vela.Validator
def valid?(_serie, value), do: value > 0
@doc "Sort function to be used as `:sorter` in series"
def sort(v1, v2), do: v1 <= v2
end
Summary
Types
The possibly type of members of the result of call to Vela.slice/1
The result of call to Vela.slice/1
Functions
Implementation of Vela.average/2
.
Implementation of Vela.delta/2
.
Empties the Vela
given as an argument, preserving all the internal information
(__meta__
, __errors__
etc.)
Returns true
if there are no values in all series, false
otherwise.
More performant implementation of slice(vela) == []
.
Implementation of Vela.equal?/2
.
Merges two Vela
s, using resolver/3
given as the third argument in a case of ambiguity.
Implementation of Vela.purge/2
.
Returns the list of series declared on WeatherForecast
Implementation of Vela.slice/1
.
Sort function to be used as :sorter
in series
Returns the initial state of WeatherForecast
, custom options etc
Updates the internal state of WeatherForecast
Returns the config WeatherForecast
was declared with
Types
@type serie_slice() :: {:tomorrow, [Vela.value()]} | {:two_days, [Vela.value()]} | {:week, [Vela.value()]}
The possibly type of members of the result of call to Vela.slice/1
@type slice() :: [serie_slice()]
The result of call to Vela.slice/1
@type t() :: %WeatherForecast{ __errors__: [Vela.kv()], __meta__: Access.t(), tomorrow: [Vela.value()], two_days: [Vela.value()], week: [Vela.value()] }
The type of this particular Vela
implementation
Functions
Implementation of Vela.average/2
.
Returns a slice of all series as keyword()
in format {Vela.serie(), Vela.value()}
,
when the value
is a calculated average of all serie values.
The second parameter might be either a function of arity 1
, accepting a serie (a list of values),
or a module, exporting average/1
function.
The result is similar to what slice/1
returns, but with average values.
Implementation of Vela.delta/2
.
Delegates to Vela.δ/2
.
Empties the Vela
given as an argument, preserving all the internal information
(__meta__
, __errors__
etc.)
See: Vela.empty!/1
.
Returns true
if there are no values in all series, false
otherwise.
More performant implementation of slice(vela) == []
.
See: Vela.empty?/1
.
Implementation of Vela.equal?/2
.
Delegates to Vela.equal?/2
.
Merges two Vela
s, using resolver/3
given as the third argument in a case of ambiguity.
See: Vela.merge/3
.
Implementation of Vela.purge/2
.
Purges values which are not passing validator
given as a second parameter.
Returns the list of series declared on WeatherForecast
Implementation of Vela.slice/1
.
Returns a slice of all series as keyword()
in format {Vela.serie(), Vela.value()}
,
if the series has no values, it’s not included into result.
Sort function to be used as :sorter
in series
@spec state(Vela.t()) :: Vela.state()
Returns the initial state of WeatherForecast
, custom options etc
@spec update_state(Vela.t(), (Vela.state() -> Vela.state())) :: Vela.t()
Updates the internal state of WeatherForecast
@spec vela_config() :: [{atom(), Vela.options()}]
Returns the config WeatherForecast
was declared with