Running Multiple Elixir Apps in Umbrella Project

As NectarCommerce extensions are envisioned to be used with Nectar and would be dependent on Nectar directly or indirectly, we chose umbrella project to have Nectar, extensions_manager, user_app, and extensions apps as part of it.

We plan to use phoenix app for extensions where web-component is needed and which would be part of the umbrella project.

Continue reading

Ecto Model Support Functions Extension

We want to allow Extensions to add support functions to existing Nectar Models without changing the Nectar Models.

Let’s begin the journey of incremental changes to bring consumer, service and library code into existence starting from a simple use-case of adding a function, say fn_from_outside, to Nectar Product.

Continue reading

Ecto Model Schema Extension

We want to allow Extensions to modify the schema of existing Nectar Models without changing the Nectar Models.

Extensions should be able to add new fields and associations to existing models as and when needed.

Let’s begin the journey of incremental changes to bring consumer, service and library code into existence starting from a simple use-case of adding a virtual boolean field, say special, to Nectar Product.

Continue reading

Introduction to Metaprogramming

It lists Metaprogramming resources and constructs used in upcoming blogs when creating different extension DSL’s.

Why another tutorial on an already well-documented metaprogramming topic ?

To revise and refresh something that we would refer time and again when reviewing Model, Router, View extension DSLs

Extension DSLs will be using below meta-programming constructs to get the job done :)

Continue reading