Rivet.Migration (rivet v2.5.2)

View Source

Summary

Functions

iex> datestamp(~N[2023-05-31 08:11:59]) "20230531081159" iex> String.length(datestamp()) == 20

iex> load_data_file("nar")

iex> maxlen_in(["a", "bcde", "fgh", "xyzabcdef"]) 9

iex> migration_model(This.Narf.Migrations) "Narf" iex> migration_model(This.Narf.Not) "Not"

iex> module_extend(This.Module, Narf) This.Module.Narf

iex> module_pop(This.Module.Narf) This.Module

iex> nodot("this/narf/not.ex") ["this", "narf", "not.ex"] iex> nodot("./narf/not.ex") ["narf", "not.ex"]

iex> pad("x", 4) "000x" iex> pad("4", -4) "4000" iex> pad(4, -4) "4000" iex> pad(4, 4) "0004"

Types

rivet_config()

@type rivet_config() :: %{
  app: String.t(),
  base: atom(),
  base_path: String.t(),
  models_root: String.t(),
  opts: Keyword.t(),
  tests_root: String.t()
}

rivet_error()

@type rivet_error() :: {:error, String.t() | atom()}

rivet_migration_input_any()

rivet_migration_input_external()

@type rivet_migration_input_external() :: %{
  external: String.t(),
  migrations: [rivet_migration_input_include()]
}

rivet_migration_input_include()

@type rivet_migration_input_include() :: %{include: module(), prefix: integer()}

rivet_migration_input_model()

@type rivet_migration_input_model() :: map()

rivet_migration_state()

@type rivet_migration_state() :: %{
  idx: %{required(integer()) => t()},
  mods: %{required(atom()) => list()}
}

rivet_migrations()

@type rivet_migrations() :: [t()]

rivet_state_result()

@type rivet_state_result() :: {:ok, rivet_migration_state()} | rivet_error()

t()

@type t() :: %Rivet.Migration{
  base: boolean(),
  external: nil | String.t(),
  include: nil | module(),
  index: nil | String.t(),
  migrations: nil | list(),
  model: nil | module(),
  module: nil | module(),
  parent: nil | module(),
  path: nil | String.t(),
  prefix: nil | integer(),
  version: integer()
}

Functions

as_module(name)

datestamp()

iex> datestamp(~N[2023-05-31 08:11:59]) "20230531081159" iex> String.length(datestamp()) == 20

datestamp(time)

load_data_file(path)

@spec load_data_file(String.t()) :: {:ok, [list()]} | rivet_error()

iex> load_data_file("nar")

iex> load_data_file("test/rivet_test_input")

force an error

iex> load_data_file("LICENSE.txt")

maxlen_in(list, func \\ & &1)

iex> maxlen_in(["a", "bcde", "fgh", "xyzabcdef"]) 9

migration_model(mod)

iex> migration_model(This.Narf.Migrations) "Narf" iex> migration_model(This.Narf.Not) "Not"

module_extend(parent, mod)

iex> module_extend(This.Module, Narf) This.Module.Narf

module_pop(mod)

iex> module_pop(This.Module.Narf) This.Module

nodot(path)

iex> nodot("this/narf/not.ex") ["this", "narf", "not.ex"] iex> nodot("./narf/not.ex") ["narf", "not.ex"]

pad(s, w, fill \\ "0")

iex> pad("x", 4) "000x" iex> pad("4", -4) "4000" iex> pad(4, -4) "4000" iex> pad(4, 4) "0004"