Я работаю над приложением Elixir/Phoenix, предназначенным для создания пользователя в моем контроллере UserController
. Существует каталог /lib/helpers/user_helpers
с рядом модулей (каждый в отдельном файле). Все эти модули имеют общее пространство имен UserHelpers.ModuleName
. В каждом из этих модулей у меня есть функция, называемая apply
, которую я хочу применить к пользовательским данным. Например, если у меня есть следующая структура файла:Elixir Список всех модулей в пространстве имен
-lib
-helpers
-user_helpers
-module1
-module2
-...
-moduleN-1
-moduleN
, где каждый из module1
и module2
содержит функцию, которая возвращает apply(user_info)
user_info
. В моей UserController
я имею функцию create(conn, params)
, в котором я хочу, чтобы запустить следующее:
user_data
|> UserHelpers.Module1.create
|> UserHelpers.Module2.create
|> ...
|> UserHelpers.ModuleN-1.create
|> UserHelpers.ModuleN.create
Но я не уверен, как динамически загружать все модули в UserHelpers
папках сделать выше. Какие-либо предложения?
Эти модули скомпилированы в ваше приложение (т. Е. Находятся в файлах '.ex', а не' .exs')? – Dogbert
И какой порядок вы хотите, чтобы их вызывали? Названия модулей заканчиваются номером? Является N> 9 (в этом случае 'Enum.sort' будет недостаточно). – Dogbert