Mishka developer tools - macros and modules to make creating your elixir application

I tried to deliver a series of our client’s CMS built on Elixir at the start of the my small group project, but we recently archived this open-source project and have yet to make plans to rework and expand it. After a long period, a series of macros and functional modules emerged from this project and our other projects, which we are gradually publishing in this library.

The creation of this macro will allow you to build normal/nested Structs that provide you with a number of important options, including the following:

  1. Validation
  2. Sanitizing
  3. Constructor
  4. It provides the capacity to operate in a nested style simultaneously.

This is the latest macro that I put in this library and it makes good features for you with the help of struct. Please click on the name of this macro to see different examples of it.


Creating basic CRUD; This macro needs to be rewritten and it is a simple macro that can be very useful to save your time.

I will gradually add some other modules and macros that may be useful to this post, please do not hesitate to give me your comments and suggestions.


Links

Hex: mishka_developer_tools | Hex
Documents: MishkaDeveloperTools — Mishka developer tools v0.1.0
Github: GitHub - mishka-group/mishka_developer_tools: Mishka developer tools provides some macros and modules to make creating your elixir application as easy as possible

1 Like

The release of version 0.1.1 has taken place. In this edition, we will have a long list of additions, and we have also included a brand new module for access management.

We are delighted to introduce our new version of Mishka developer tools library. For more info click on GuardedStruct and PermissionAccess.


Changelog for MishkaDeveloperTools 0.1.1

  • Add derive for sanitizing and validating Either
  • Add derive for sanitizing and validating Enum, improved
  • Add derive for sanitizing and validating equal
  • Add exception when macro is configed for error: true, only can be called inside sub_field and guardedstruct macro
  • Add authorized_fields validating option for sub_field and guardedstruct macro
  • Calling a struct from another module
  • Calling list of structs from another module
  • Add capability of having a field with list of structs
  • Add capability of having a sub_field with list of structs
  • Add Automatic generator for a specific key on
  • Add a dependent key to another key auto
  • Add a key to get a value from another key from
  • Add struct information function
  • Add transmitting whole output of builder function to its children
  • Add new style of builder entries to accept tuple with keys
  • Add auto, on, from core keys for list of structs
  • Re-structured outputs for new capabilities with backward compatibility
  • Add permission access module in runtime

Links

Github: Release 0.1.1 · mishka-group/mishka_developer_tools · GitHub
Hex: mishka_developer_tools | Hex

The release of version 0.1.2 has taken place. In this edition, we will have a long list of additions, and we have also included a brand macro for Conditional field structure.

Changelog for MishkaDeveloperTools 0.1.2


  • Solving the problem of creating extra atom in case of a mistake or an attack on the system. It could be a security issue, please update.
  • Add allowed parent domain core key Enum derive style
  • Add allowed parent domain core key either derive style
  • Add allowed parent domain core key equal derive style
  • Add allowed parent domain core key custom derive style
  • Add driver for accepting custom function
  • Add status to auto core key if the data of key exists do not create auto value
  • Add Conditional field structure macro (Multiple states of a field) #21
  • Add Supporting new Typespecs for list(struct()) and previous one struct()
  • Add Supporting new sanitizer for :string_float
  • Add Supporting new validation for :string_float
  • Add Supporting new validation for :some_string_float

Links

Github: Release 0.1.2 · mishka-group/mishka_developer_tools · GitHub
Hex: mishka_developer_tools | Hex