All Versions
31
Latest Version
Avg Release Cycle
-
Latest Release
-

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 chain
    • Exop.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
  • v0.5.0 Changes

    ๐Ÿ”„ Changes

    • ๐Ÿ†• New list_item parameter check.
  • v0.4.8 Changes

    ๐Ÿ”„ Changes

    • ๐Ÿ›  Fixed required check when a struct was checked with inner.
  • v0.4.7 Changes

    ๐Ÿ”„ Changes

    • ๐Ÿ›  Fixed required check when false was treated as the absence of a parameter.
  • 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 a MyStruct 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 your process/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).
  • 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.