defmodule GitHub.Issues.URLTemplate do @moduledoc """ Returns a URL based on a user, a project and a URL template. """ alias GitHub.Issues.CLI @doc """ Returns a URL based on `user`, `project` and `url_template`. ## Parameters - `user` - GitHub user - `project` - GitHub project - `url_template` - URL template (EEx string) ## Examples iex> alias GitHub.Issues.URLTemplate iex> url_template = "api.github.com/repos/<%=user%>/<%=project%>/issues" iex> URLTemplate.url("Kraigie", "nostrum", url_template) "api.github.com/repos/Kraigie/nostrum/issues" iex> alias GitHub.Issues.URLTemplate iex> url_template = "elixir-lang.org/<%=project%>/<%=user%>/wow" iex> URLTemplate.url("José", "Elixir", url_template) "elixir-lang.org/Elixir/José/wow" iex> alias GitHub.Issues.URLTemplate iex> url_template = "elixir-lang.org///wow" iex> URLTemplate.url("José", "Elixir", url_template) "elixir-lang.org///wow" """ @spec url(CLI.user(), CLI.project(), String.t()) :: String.t() def url(user, project, url_template) do EEx.eval_string(url_template, user: user, project: project) end end