Псевдоним всего содержимого модуля/имя в IEX

Следуя совету в этом вопросе о том, как загрузить iex с помощью зависимости текущего проекта Я смог довольно продуктивно работать с зависимостями фреймворка phoenix. Однако становится немного утомительно предоставлять пространство имен проекта Phoenix для каждой отдельной вещи.

Вместо того, чтобы печатать MyApp.Repo.all(MyApp.User), я надеялся сделать Repo.all(User). Я могу связать каждую вещь по отдельности с помощью alias MyApp.Repo, as: Repo, но есть ли способ сделать это для всех сразу?


person Graham Conzett    schedule 29.12.2015    source источник


Ответы (1)


Вы можете просто вызвать alias MyApp.Repo вместо MyApp.Repo, as: Repo — будет использоваться последняя часть имени модуля.

В Elixir 1.2 вы можете присвоить нескольким подмодулям их собственные имена одним вызовом: alias MyApp.{Repo, User}

У вас также есть вариант файла .iex.exs, который вы можете использовать для настройки своих псевдонимов (согласно документам IEx< /а>). Я бы не рекомендовал это в этом случае, так как вы рискуете столкнуться с конфликтом имен. Вызов alias в сеансе iex более явный.

person Gazler    schedule 29.12.2015
comment
Похоже, это будет работать отлично, спасибо! Я думаю, что псевдонимы моделей phoenix в файле iex.exs для каждого проекта дадут мне именно то, что мне нужно, без риска слишком большого количества коллизий. - person Graham Conzett; 30.12.2015