View Source Uniform.App (Uniform v0.6.1)
A struct representing an app to be ejected. See the type definition for more details.
Where it's availabile
An app struct is available in the Blueprint in these callbacks and macros:
Use the app to make decisions about what to eject or how files should be
modified.
Checking for dependencies
In the callbacks and macros above, you can use depends_on? to determine
whether an app depends on a mix or lib dependency.
depends_on?(app, :mix, :norm)See depends_on?/3 for more information.
Summary
Functions
Indicates if an app requires a given dependency.
Types
@type t() :: %Uniform.App{ destination: Path.t(), extra: keyword(), internal: term(), name: %{ module: module(), hyphen: String.t(), underscore: String.t(), camel: String.t() } }
An App struct, representing a discrete, self-contained app to be ejected.
Example
Note that the extra key contains everything you put in extra in
uniform.exs for the given app. It also contains anything returned by
Uniform.Blueprint.extra/1. (uniform.exs has precedence for conflicting
keys.)
#Uniform.App<
extra: [
company: :fake_co,
logo_file: "path/to/some_logo.png",
some_data: "from uniform.exs"
],
name: %{
camel: "Tweeter",
hyphen: "tweeter",
module: Tweeter,
underscore: "tweeter"
},
...
>
Functions
Indicates if an app requires a given dependency.
Pass in the app, the dependency type (either :lib or :mix), and the
name of the dependency (like :tesla or :my_lib_directory) and the
function will return true if the dependency will be ejected along with the
app.
Examples
depends_on?(app, :mix, :some_included_mix_dep)
depends_on?(app, :mix, :not_included_dep)
depends_on?(app, :lib, :some_included_lib)Examples in Context
base_files do
if depends_on?(app, :mix, :some_hex_dependency) do
file "file_needed_by_some_hex_dependency"
end
end
modify ~r/^test/.+_(test).exs/, fn file, app ->
if depends_on?(app, :lib, :my_data_lib) do
file
else
String.replace(
file,
"use Oban.Testing, repo: MyDataLib.Repo",
"use Oban.Testing, repo: OtherDataLib.Repo"
)
end
end