Mix.Generator
Удобства для работы с путями и генерации контента.
Краткое описание
Функции
- copy_file(source, target, options \\ [])
Копирует
sourceвtarget.- copy_template(source, target, assigns, options \\ [])
Вычисляет и копирует шаблоны в
sourceвtarget.- create_directory(path, options \\ [])
Создаёт директорию, если она не существует.
- create_file(path, contents, opts \\ [])
Создаёт файл с заданным содержимым.
- embed_template(name, contents)
Встраивает шаблон, заданный
contentsв текущий модуль.- embed_text(name, contents)
Встраивает текст, заданный
contentsв текущий модуль.- overwrite?(path)
Запрашивает у пользователя подтверждение перезаписи файла, если он существует.
- overwrite?(path, contents)
Запрашивает у пользователя подтверждение перезаписи файла, если он существует.
Функции
copy_file(source, target, options \\ [])Source
Specs
copy_file(Path.t(), Path.t(), keyword()) :: boolean()
Копирует source в target.
Если target уже существует и содержимое отличается, запрашивается подтверждение у пользователя.
Опции
-
:force- принудительно копирует без запроса в консоли -
:quiet- не регистрировать вывод команды
Примеры
iex> Mix.Generator.copy_file("source/gitignore", ".gitignore")
* creating .gitignore
true copy_template(source, target, assigns, options \\ [])Source
Specs
copy_template(Path.t(), Path.t(), keyword(), keyword()) :: boolean()
Вычисляет и копирует шаблоны из source в target.
Шаблон в source вычисляется с заданными assigns.
Если target уже существует и содержимое отличается, запрашивается подтверждение у пользователя.
Опции
-
:force- принудительно копирует без запроса в консоли -
:quiet- не регистрировать вывод команды
Примеры
iex> assigns = [project_path: "/Users/joe/newproject"]
iex> Mix.Generator.copy_template("source/gitignore", ".gitignore", assigns)
* creating .gitignore
true create_directory(path, options \\ [])Source
Specs
create_directory(Path.t(), keyword()) :: true
Создаёт директорию, если она не существует.
Эта функция ничего не делает, если заданная директория уже существует; в этом случае, она всё равно регистрирует создание директории.
Опции
-
:quiet- не регистрировать вывод команды
Примеры
iex> Mix.Generator.create_directory("path/to/dir")
* creating path/to/dir
true create_file(path, contents, opts \\ [])Source
Specs
create_file(Path.t(), iodata(), keyword()) :: boolean()
Создаёт файл с заданным содержимым.
Если файл уже существует и содержимое отличается, запрашивается подтверждение у пользователя.
Опции
-
:force- принудительно создаёт без запроса в консоли -
:quiet- не регистрировать вывод команды
Примеры
iex> Mix.Generator.create_file(".gitignore", "_build\ndeps\n")
* creating .gitignore
true embed_template(name, contents)Source
Встраивает шаблон, заданный contents в текущий модуль.
Определит частную функцию с именем name и _template, которая ожидает аргументы в виде списков ключевых слов.
Эта функция должна быть вызвана, передавая список ключевых слов. Каждый ключ в списке ключевых слов может быть доступен в шаблоне с помощью макроса @.
Для получения дополнительной информации см. EEx.SmartEngine.
Примеры
defmodule Mix.Tasks.MyTask do require Mix.Generator Mix.Generator.embed_template(:log, "Log: <%= @log %>") end
embed_text(name, contents)Source
Встраивает текст, заданный contents в текущий модуль.
Определит частную функцию с именем name и _text, которая не ожидает аргументов.
Примеры
defmodule Mix.Tasks.MyTask do require Mix.Generator Mix.Generator.embed_text(:error, "There was an error!") end
overwrite?(path)Source
Specs
overwrite?(Path.t()) :: boolean()
Запрашивает у пользователя подтверждение перезаписи файла, если он существует.
Возвращает false, если файл существует и пользователь запретил перезапись. В противном случае возвращает true.
overwrite?(path, contents)Source
Specs
overwrite?(Path.t(), iodata()) :: boolean()
Запрашивает у пользователя подтверждение перезаписи файла, если он существует.
Содержимое сравнивается, чтобы избежать запроса подтверждения, если содержимое не изменилось. Возвращает false, если файл существует и содержимое совпадает или пользователь запретил перезапись. В противном случае возвращает true.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.12.0/Mix.Generator.html