From eff0f4ee583c89b13b118492fb6594d6b0a4122f Mon Sep 17 00:00:00 2001 From: Giacomo Leidi Date: Tue, 16 Sep 2025 11:24:00 +0200 Subject: [PATCH] gnu: Add elixir-needle. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elixir-databases.scm (elixir-needle): New variable. Change-Id: Ia4cff19deb34236c7d2058f4c4b36972146f21ab Signed-off-by: Ludovic Courtès --- gnu/packages/elixir-databases.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/elixir-databases.scm b/gnu/packages/elixir-databases.scm index 55a9d4cc4d00aad6cda22bb7fd947038d7d07ee3..883073a790ea1246922d5da7fbf1d1e9aaa0bff5 100644 --- a/gnu/packages/elixir-databases.scm +++ b/gnu/packages/elixir-databases.scm @@ -228,6 +228,33 @@ ULID datatype for @code{Ecto} (using @code{ex_ulid}) and related helpers.") (home-page "https://hexdocs.pm/needle_ulid/") (license license:expat))) +(define-public elixir-needle + (package + (name "elixir-needle") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (hexpm-uri "needle" version)) + (sha256 + (base32 "0gf1bniwf650xrczvimmw1drg6cjqz21539nlhqw4la4m91jl7h4")))) + (build-system mix-build-system) + (propagated-inputs (list elixir-ecto-sql elixir-exto elixir-needle-ulid + erlang-telemetry)) + (synopsis + "Universal foreign keys, virtual schemas, and shared data mixins") + (description + "When using a relational DB (such an @code{Ecto} schema with a Postgres +table), usually a foreign key field has to be pre-defined with a reference +pointing to a specific field in a specific table. + +Besides regular schemas with universal foreign keys (@code{Pointable}), +@code{Needle} provides @code{Virtual} for schemas that don’t have any fields on +their own, and @code{Mixin} for storing common fields that can be re-used by +multiple @code{Pointable}s or @code{Virtual}s.") + (home-page "https://hexdocs.pm/needle/") + (license license:asl2.0))) + (define-public elixir-postgrex (package (name "elixir-postgrex")