All Versions
31
Latest Version
Avg Release Cycle
-
Latest Release
-
Changelog History
Page 3
Changelog History
Page 3
-
v1.0.0 Changes
๐ Changes
๐ A bunch of changes were made in this release with some brand new functionality, so I decided to bump version to 1.0.0, finally. Exop has been working since 2016 on various projects, in production. I think it means something and I can say it is production-ready :)
Exop.Chain
helps you to organize a number of operations into an invocation chainExop.Fallback
handles your operations fails (error-tuple results)Exop.Policy
was simplified- โก๏ธ minor codebase updates
- ๐ docs were reviewed
-
v0.5.1 Changes
๐ Changes
- An operation's
process/1
now takes a map of parameters (contract) instead of a keywords list (This will help you to pattern-match them) - ๐ Credo was wiped out (with annoying warning on
@lint
) - Code was formatted with elixir formatter
- An operation's
-
v0.5.0 Changes
๐ Changes
- ๐ New
list_item
parameter check.
- ๐ New
-
v0.4.8 Changes
๐ Changes
- ๐ Fixed
required
check when a struct was checked withinner
.
- ๐ Fixed
-
v0.4.7 Changes
๐ Changes
- ๐ Fixed
required
check whenfalse
was treated as the absence of a parameter.
- ๐ Fixed
-
v0.4.6 Changes
๐ Changes
- Does not validate nil parameters if they are not required. For example:
defmodule Operation do use Exop.Operation parameter :value, type: %MyStruct{} # ... end # Old versions Operation.run([]) # {:error, {:validation, %{value: ["is not expected struct"]}} # This version Operation.run([]) # {:ok, ...}
In previous versions such code returns validation error, because
nil
is not aMyStruct
struct (even if it is not required by default).In current version such behaviour is fixed and Exop will not run validations for nil parameters if they are not required.
-
v0.4.5 Changes
๐ Changes
equals
check: Checks whether a parameter's value exactly equals given value (with type equality).
parameter :some_param, equals: 100.5
-
v0.4.4 Changes
๐ Changes
run/1
output: If yourprocess/1
function returns a tuple{:ok, _your_result_}
Exop will not wrap this output into former{:ok, _output_}
tuple.
So, if
process/1
returns{:ok, :its_ok}
you'll get exactly that tuple, not{:ok, {:ok, :its_ok}}
.(
run!/1
acts in the same manner with respect of it's bang nature) -
v0.4.3 Changes
๐ Changes
- ๐ฒ Log improvements:
Logger provides operation's module name if a contract validation failed. Like:
14:21:05.944 [warn] Elixir.ExopOperationTest.Operation errors: param1: has wrong type param2: has wrong type
- ๐ Docs ExDocs (hex docs) were mostly provided. Will be useful for some IDEs/editors plugins usage (with docs helpers) and Dash users (like me).
- ๐ฒ Log improvements:
Logger provides operation's module name if a contract validation failed. Like:
-
v0.4.2 Changes
๐ Changes
func/2
check: Custom validation function now receives two arguments: the first is a contract of an operation (parameters with their values), the second - the actual parameter value to check. So, now you can validate a parameter depending on other parameters values.