Skip to content

Commit

Permalink
Deploying to gh-pages from @ a6c6969 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
arnodirlam committed Nov 21, 2024
1 parent 3c9019e commit cb72200
Show file tree
Hide file tree
Showing 22 changed files with 568 additions and 568 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/2c58cf0b3a51ae91d3177b50892500693bd98617/docs/basics/00_intro.md#L1" title="View Source" class="icon-action" rel="help">
<a href="https://github.com/elixir-dx/dx/blob/a6c69695039109ac9ef32c355a53a1c44dd2c5ed/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/2c58cf0b3a51ae91d3177b50892500693bd98617/docs/basics/04_references.md#L1" title="View Source" class="icon-action" rel="help">
<a href="https://github.com/elixir-dx/dx/blob/a6c69695039109ac9ef32c355a53a1c44dd2c5ed/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="8461859495-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="4041685668-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="8461859495-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="4041685668-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="8461859495-2">end</span><span class="w">
</span><span class="k" data-group-id="4041685668-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="8461859495-3">%{</span><span class="ss">created_by_id</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="8461859495-4">{</span><span class="ss">:ref</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8461859495-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="8461859495-5">]</span><span class="p" data-group-id="8461859495-4">}</span><span class="p" data-group-id="8461859495-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="4041685668-3">%{</span><span class="ss">created_by_id</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="4041685668-4">{</span><span class="ss">:ref</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="4041685668-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="4041685668-5">]</span><span class="p" data-group-id="4041685668-4">}</span><span class="p" data-group-id="4041685668-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="8461859495-1">end</span></code></pre><h3 id="operators" class="section-heading">
</span><span class="k" data-group-id="4041685668-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="7101314680-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="8592740924-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="7101314680-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="8592740924-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="7101314680-2">end</span><span class="w">
</span><span class="k" data-group-id="8592740924-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="7101314680-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="7101314680-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="7101314680-4">%{</span><span class="ss">list</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7101314680-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="7101314680-5">}</span><span class="p" data-group-id="7101314680-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="7101314680-6">%{</span><span class="ss">completed_at</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="7101314680-7">{</span><span class="ss">:gt</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7101314680-8">{</span><span class="ss">:ref</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="7101314680-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="7101314680-9">]</span><span class="p" data-group-id="7101314680-8">}</span><span class="p" data-group-id="7101314680-7">}</span><span class="p" data-group-id="7101314680-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="8592740924-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="8592740924-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="8592740924-4">%{</span><span class="ss">list</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="8592740924-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="8592740924-5">}</span><span class="p" data-group-id="8592740924-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="8592740924-6">%{</span><span class="ss">completed_at</span><span class="p">:</span><span class="w"> </span><span class="p" data-group-id="8592740924-7">{</span><span class="ss">:gt</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8592740924-8">{</span><span class="ss">:ref</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8592740924-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="8592740924-9">]</span><span class="p" data-group-id="8592740924-8">}</span><span class="p" data-group-id="8592740924-7">}</span><span class="p" data-group-id="8592740924-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="7101314680-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="8592740924-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 cb72200

Please sign in to comment.