Fastfwd v0.1.0 Fastfwd.Loader View Source

Makes sure all modules for the specified applications have been loaded before Fastfwd searches them for suitable behaviours.

In some environments Elixir will only load a module when it's first accessed. This means that modules designed to be accessed by Fastfwd might not be already loaded when it searches for them, and will not be detected properly.

You won't need to use this module if your sender modules are use-ing the Fastfwd.Sender module, as it will auto-load their receiver modules.

If you are using Fastfwd to build something more bespoke then you may want to manually preload modules using Fastfwd.Loader

Link to this section Summary

Functions

Finds all modules for the first application and preloads them, making them visible to Fastfwd

Finds all modules for listed applications and preloads them, making them visible to Fastfwd

Link to this section Functions

Link to this function

run() View Source
run() :: {:ok, [atom()]} | {:error, String.t()}

Finds all modules for the first application and preloads them, making them visible to Fastfwd.

If no applications are specified then Fastfwd will attempt to search the first application found, assuming it to be the current project. It's best to specify the projects you want to search.

Examples

{:ok, apps} = Fastfwd.Loader.run()
Link to this function

run(apps) View Source
run(:all) :: {:ok, [atom()]} | {:error, String.t()}
run([atom()]) :: {:ok, [atom()]} | {:error, String.t()}

Finds all modules for listed applications and preloads them, making them visible to Fastfwd.

If :all is specified then Fastfwd will attempt to search all applications.

Examples

Fastfwd.Loader.run(:my_app)
{:ok, [:my_app]}

Fastfwd.Loader.run([:my_app, :my_app_ee, :extra_plugins])
{:ok, [:my_app, :my_app_ee, :extra_plugins]}

Fastfwd.Loader.run(:all)
{:ok, [:my_app, :fastfwd, :fastglobal, :syntax_tools, :benchee, :deep_merge, :logger, :hex, :inets, :ssl, :public_key, :asn1, :crypto, :mix, :iex, :elixir, :compiler, :stdlib, :kernel]}