Skip to content

Commit

Permalink
Deploying to gh-pages from @ 8ae6621 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
arnodirlam committed Oct 16, 2024
1 parent fde7fec commit 93fb9bc
Show file tree
Hide file tree
Showing 22 changed files with 527 additions and 527 deletions.
2 changes: 1 addition & 1 deletion 00_intro.html
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
<div id="top-content">
<h1>

<a href="https://github.com/elixir-dx/dx/blob/4ee3c16d66c775283df3bd19b1c58efe977f5690/docs/basics/00_intro.md#L1" title="View Source" class="icon-action" rel="help">
<a href="https://github.com/elixir-dx/dx/blob/8ae6621d121d6cbd1694ffa781edcb1e7dd3ccc2/docs/basics/00_intro.md#L1" title="View Source" class="icon-action" rel="help">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
Expand Down
38 changes: 19 additions & 19 deletions 01_predicates.html

Large diffs are not rendered by default.

64 changes: 32 additions & 32 deletions 02_associations.html

Large diffs are not rendered by default.

38 changes: 19 additions & 19 deletions 03_conditions.html

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions 04_references.html
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@
<div id="top-content">
<h1>

<a href="https://github.com/elixir-dx/dx/blob/4ee3c16d66c775283df3bd19b1c58efe977f5690/docs/basics/04_references.md#L1" title="View Source" class="icon-action" rel="help">
<a href="https://github.com/elixir-dx/dx/blob/8ae6621d121d6cbd1694ffa781edcb1e7dd3ccc2/docs/basics/04_references.md#L1" title="View Source" class="icon-action" rel="help">
<i class="ri-code-s-slash-line" aria-hidden="true"></i>
<span class="sr-only">View Source</span>
</a>
Expand All @@ -122,42 +122,42 @@ <h1>
</h1>

<p>Often times, we need to compare values in different fields with
each other, not with fixed values. This is where references come in.</p><p>Say we want to add a <code class="inline">by_owner?</code> predicate to a <code class="inline">Todo.Task</code>:</p><pre><code class="makeup elixir" translate="no"><span class="kd">defmodule</span><span class="w"> </span><span class="nc">Todo.Task</span><span class="w"> </span><span class="k" data-group-id="4963279657-1">do</span><span class="w">
each other, not with fixed values. This is where references come in.</p><p>Say we want to add a <code class="inline">by_owner?</code> predicate to a <code class="inline">Todo.Task</code>:</p><pre><code class="makeup elixir" translate="no"><span class="kd">defmodule</span><span class="w"> </span><span class="nc">Todo.Task</span><span class="w"> </span><span class="k" data-group-id="7302737161-1">do</span><span class="w">
</span><span class="kn">use</span><span class="w"> </span><span class="nc">Ecto.Schema</span><span class="w">
</span><span class="kn">use</span><span class="w"> </span><span class="nc">Dx.Ecto.Schema</span><span class="p">,</span><span class="w"> </span><span class="ss">repo</span><span class="p">:</span><span class="w"> </span><span class="nc">Todo.Repo</span><span class="w">

</span><span class="n">schema</span><span class="w"> </span><span class="s">&quot;tasks&quot;</span><span class="w"> </span><span class="k" data-group-id="4963279657-2">do</span><span class="w">
</span><span class="n">schema</span><span class="w"> </span><span class="s">&quot;tasks&quot;</span><span class="w"> </span><span class="k" data-group-id="7302737161-2">do</span><span class="w">
</span><span class="n">field</span><span class="w"> </span><span class="ss">:completed_at</span><span class="p">,</span><span class="w"> </span><span class="ss">:utc_datetime</span><span class="w">

</span><span class="n">belongs_to</span><span class="w"> </span><span class="ss">:list</span><span class="p">,</span><span class="w"> </span><span class="nc">Todo.List</span><span class="w">
</span><span class="n">belongs_to</span><span class="w"> </span><span class="ss">:created_by</span><span class="p">,</span><span class="w"> </span><span class="nc">Todo.User</span><span class="w">
</span><span class="k" data-group-id="4963279657-2">end</span><span class="w">
</span><span class="k" data-group-id="7302737161-2">end</span><span class="w">

</span><span class="n">infer</span><span class="w"> </span><span class="ss">by_owner?</span><span class="p">:</span><span class="w"> </span><span class="no">true</span><span class="p">,</span><span class="w"> </span><span class="ss">when</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4963279657-3">%{</span><span class="ss">created_by_id</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4963279657-4">{</span><span class="ss">:ref</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4963279657-5">[</span><span class="ss">:list</span><span class="p">,</span><span class="w"> </span><span class="ss">:created_by_id</span><span class="p" data-group-id="4963279657-5">]</span><span class="p" data-group-id="4963279657-4">}</span><span class="p" data-group-id="4963279657-3">}</span><span class="w">
</span><span class="n">infer</span><span class="w"> </span><span class="ss">by_owner?</span><span class="p">:</span><span class="w"> </span><span class="no">true</span><span class="p">,</span><span class="w"> </span><span class="ss">when</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7302737161-3">%{</span><span class="ss">created_by_id</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7302737161-4">{</span><span class="ss">:ref</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7302737161-5">[</span><span class="ss">:list</span><span class="p">,</span><span class="w"> </span><span class="ss">:created_by_id</span><span class="p" data-group-id="7302737161-5">]</span><span class="p" data-group-id="7302737161-4">}</span><span class="p" data-group-id="7302737161-3">}</span><span class="w">
</span><span class="n">infer</span><span class="w"> </span><span class="ss">by_owner?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="w">
</span><span class="k" data-group-id="4963279657-1">end</span></code></pre><h3 id="operators" class="section-heading">
</span><span class="k" data-group-id="7302737161-1">end</span></code></pre><h3 id="operators" class="section-heading">
<a href="#operators" class="hover-link">
<i class="ri-link-m" aria-hidden="true"></i>
</a>
<span class="text">Operators</span>
</h3>
<p>By default, all comparisons need to match exactly. However, other comparisons are possible as well.</p><p>Say we support completing tasks on an already archived list.
And we want to add a predicate <code class="inline">completed_later?</code> to capture that.</p><pre><code class="makeup elixir" translate="no"><span class="kd">defmodule</span><span class="w"> </span><span class="nc">Todo.Task</span><span class="w"> </span><span class="k" data-group-id="1813703003-1">do</span><span class="w">
And we want to add a predicate <code class="inline">completed_later?</code> to capture that.</p><pre><code class="makeup elixir" translate="no"><span class="kd">defmodule</span><span class="w"> </span><span class="nc">Todo.Task</span><span class="w"> </span><span class="k" data-group-id="2073577727-1">do</span><span class="w">
</span><span class="kn">use</span><span class="w"> </span><span class="nc">Ecto.Schema</span><span class="w">
</span><span class="kn">use</span><span class="w"> </span><span class="nc">Dx.Ecto.Schema</span><span class="p">,</span><span class="w"> </span><span class="ss">repo</span><span class="p">:</span><span class="w"> </span><span class="nc">Todo.Repo</span><span class="w">

</span><span class="n">schema</span><span class="w"> </span><span class="s">&quot;tasks&quot;</span><span class="w"> </span><span class="k" data-group-id="1813703003-2">do</span><span class="w">
</span><span class="n">schema</span><span class="w"> </span><span class="s">&quot;tasks&quot;</span><span class="w"> </span><span class="k" data-group-id="2073577727-2">do</span><span class="w">
</span><span class="n">field</span><span class="w"> </span><span class="ss">:completed_at</span><span class="p">,</span><span class="w"> </span><span class="ss">:utc_datetime</span><span class="w">

</span><span class="n">belongs_to</span><span class="w"> </span><span class="ss">:list</span><span class="p">,</span><span class="w"> </span><span class="nc">Todo.List</span><span class="w">
</span><span class="n">belongs_to</span><span class="w"> </span><span class="ss">:created_by</span><span class="p">,</span><span class="w"> </span><span class="nc">Todo.User</span><span class="w">
</span><span class="k" data-group-id="1813703003-2">end</span><span class="w">
</span><span class="k" data-group-id="2073577727-2">end</span><span class="w">

</span><span class="n">infer</span><span class="w"> </span><span class="ss">completed_later?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="p">,</span><span class="w"> </span><span class="ss">when</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1813703003-3">%{</span><span class="ss">completed?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="p" data-group-id="1813703003-3">}</span><span class="w">
</span><span class="n">infer</span><span class="w"> </span><span class="ss">completed_later?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="p">,</span><span class="w"> </span><span class="ss">when</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1813703003-4">%{</span><span class="ss">list</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1813703003-5">%{</span><span class="ss">archived?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="p" data-group-id="1813703003-5">}</span><span class="p" data-group-id="1813703003-4">}</span><span class="w">
</span><span class="n">infer</span><span class="w"> </span><span class="ss">completed_later?</span><span class="p">:</span><span class="w"> </span><span class="no">true</span><span class="p">,</span><span class="w"> </span><span class="ss">when</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1813703003-6">%{</span><span class="ss">completed_at</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="1813703003-7">{</span><span class="ss">:gt</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1813703003-8">{</span><span class="ss">:ref</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="1813703003-9">[</span><span class="ss">:list</span><span class="p">,</span><span class="w"> </span><span class="ss">:archived_at</span><span class="p" data-group-id="1813703003-9">]</span><span class="p" data-group-id="1813703003-8">}</span><span class="p" data-group-id="1813703003-7">}</span><span class="p" data-group-id="1813703003-6">}</span><span class="w">
</span><span class="n">infer</span><span class="w"> </span><span class="ss">completed_later?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="p">,</span><span class="w"> </span><span class="ss">when</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2073577727-3">%{</span><span class="ss">completed?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="p" data-group-id="2073577727-3">}</span><span class="w">
</span><span class="n">infer</span><span class="w"> </span><span class="ss">completed_later?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="p">,</span><span class="w"> </span><span class="ss">when</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2073577727-4">%{</span><span class="ss">list</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2073577727-5">%{</span><span class="ss">archived?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="p" data-group-id="2073577727-5">}</span><span class="p" data-group-id="2073577727-4">}</span><span class="w">
</span><span class="n">infer</span><span class="w"> </span><span class="ss">completed_later?</span><span class="p">:</span><span class="w"> </span><span class="no">true</span><span class="p">,</span><span class="w"> </span><span class="ss">when</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2073577727-6">%{</span><span class="ss">completed_at</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="2073577727-7">{</span><span class="ss">:gt</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2073577727-8">{</span><span class="ss">:ref</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2073577727-9">[</span><span class="ss">:list</span><span class="p">,</span><span class="w"> </span><span class="ss">:archived_at</span><span class="p" data-group-id="2073577727-9">]</span><span class="p" data-group-id="2073577727-8">}</span><span class="p" data-group-id="2073577727-7">}</span><span class="p" data-group-id="2073577727-6">}</span><span class="w">
</span><span class="n">infer</span><span class="w"> </span><span class="ss">completed_later?</span><span class="p">:</span><span class="w"> </span><span class="no">false</span><span class="w">
</span><span class="k" data-group-id="1813703003-1">end</span></code></pre><p>The <code class="inline">Todo.Task</code> must already by <code class="inline">completed?</code> and the <code class="inline">Todo.List</code> <code class="inline">archived?</code>.
</span><span class="k" data-group-id="2073577727-1">end</span></code></pre><p>The <code class="inline">Todo.Task</code> must already by <code class="inline">completed?</code> and the <code class="inline">Todo.List</code> <code class="inline">archived?</code>.
In particular, the <code class="inline">Todo.Task</code> must be <code class="inline">completed_at</code> after the <code class="inline">Todo.List</code> was archived.</p><p>Operators can also compare to fixed values (not references).</p><h4>Supported operators</h4><p>Operators with all aliases:</p><ul><li>Greater than: <code class="inline">:gt</code>, <code class="inline">:&gt;</code>, <code class="inline">:greater_than</code>, <code class="inline">:after</code></li><li>Greater than or equal: <code class="inline">:gte</code>, <code class="inline">:&gt;=</code>, <code class="inline">:greater_than_or_equal</code>, <code class="inline">:on_or_after</code>, <code class="inline">:at_or_after</code></li><li>Less than: <code class="inline">:lt</code>, <code class="inline">:&lt;</code>, <code class="inline">:less_than</code>, <code class="inline">:before</code></li><li>Less than or equal: <code class="inline">:lte</code>, <code class="inline">:&lt;=</code>, <code class="inline">:less_than_or_equal</code>, <code class="inline">:on_or_before</code>, <code class="inline">:at_or_before</code></li></ul>
</div>

Expand Down
Loading

0 comments on commit 93fb9bc

Please sign in to comment.