mixのタスクで受け取ったパラメータをモジュールに変換して何か実行したい場合とか用メモ。
"some_module"
を SomeModule
に変換したい場合。
string = "some_module"
module = string |> Macro.camelize()
m = Module.concat([Elixir, module]) # => SomeModule
Module.concat
を使えば変換してくれるけど、モジュール名がネストしていない場合は暗黙的に付加されている Elixir
を先頭に指定してやれば問題ない。
上の例なら、SomeModuleがexec/0という関数を持っていれば、
m.exec()
で関数を実行できる。