Current section
Files
Jump to
Current section
Files
lib/helper.ex
defmodule Helper do
@moduledoc false
# Transforms and AST representation like {:__aliases__, [alias: false], [:Module, :SubModule]}
# into a string represetation: "sub_module"
def get_underscored_name(ast_module) do
ast_module
|> get_module()
|> get_module_name()
|> Macro.underscore()
end
# Transforms an AST representation like {:__aliases__, [alias: false], [:Module, :Submodule]}
# into Module.Submodule
def get_module(opts) do
Macro.expand(opts, __ENV__)
end
# Get the name of the module as a string.
# Transforms Module.Submodule into "Submodule"
def get_module_name(module) do
module
|> to_string()
|> String.split(".")
|> List.last()
end
# Given the `only` and `except` options, check if a given function should be defined.
# Here, `function` is an atom: :get, :get!, :list, :create, :update or :delete
def define_function?(_function, [] = _only, [] = _except) do
true
end
def define_function?(function, only, [] = _except) do
Enum.member?(only, function)
end
def define_function?(function, [] = _only, except) do
!Enum.member?(except, function)
end
end