defmodule Mix.Tasks.CandleClock.Gen.Schema do alias CandleClock.MixTasks.Utils require EEx template_file = Path.join([__DIR__, "./templates/schema.ex.eex"]) EEx.function_from_file(:defp, :render_schema, template_file, [:assigns]) def run(params) do {opts, [filename], _} = OptionParser.parse(params, strict: [overwrite: :boolean]) assigns = %{ schema_name: "CandleClock.Timer", table_name: "candle_clock_timers", datetime_type: ":utc_datetime_usec" } code = render_schema(assigns) Utils.write(filename, code, opts) end for var <- [:schema_name, :table_name, :datetime_type] do defp unquote(var)(params) do Map.get(params, unquote(var)) end end end