@@ -24,6 +24,8 @@ defmodule NestedSets.Query do
2424
2525 import Ecto.Query
2626
27+ @ type ns_node :: struct ( )
28+
2729 defp config ( schema ) , do: NestedSets . config ( schema )
2830
2931 defp get_schema ( queryable ) do
@@ -39,7 +41,7 @@ defmodule NestedSets.Query do
3941 ## Options
4042 * `:depth` - limit to ancestors within N levels (optional)
4143 """
42- @ spec ancestors ( Ecto.Queryable . t ( ) , struct ( ) , keyword ( ) ) :: Ecto.Query . t ( ) | nil
44+ @ spec ancestors ( Ecto.Queryable . t ( ) , ns_node ( ) , keyword ( ) ) :: Ecto.Query . t ( ) | nil
4345 def ancestors ( queryable , node , opts \\ [ ] ) do
4446 schema = get_schema ( queryable )
4547 cfg = config ( schema )
@@ -73,7 +75,7 @@ defmodule NestedSets.Query do
7375 @ doc """
7476 Alias for `ancestors/3`.
7577 """
76- @ spec parents ( Ecto.Queryable . t ( ) , struct ( ) , keyword ( ) ) :: Ecto.Query . t ( ) | nil
78+ @ spec parents ( Ecto.Queryable . t ( ) , ns_node ( ) , keyword ( ) ) :: Ecto.Query . t ( ) | nil
7779 def parents ( queryable , node , opts \\ [ ] ) , do: ancestors ( queryable , node , opts )
7880
7981 @ doc """
@@ -82,7 +84,7 @@ defmodule NestedSets.Query do
8284 ## Options
8385 * `:depth` - limit to descendants within N levels (optional)
8486 """
85- @ spec descendants ( Ecto.Queryable . t ( ) , struct ( ) , keyword ( ) ) :: Ecto.Query . t ( ) | nil
87+ @ spec descendants ( Ecto.Queryable . t ( ) , ns_node ( ) , keyword ( ) ) :: Ecto.Query . t ( ) | nil
8688 def descendants ( queryable , node , opts \\ [ ] ) do
8789 schema = get_schema ( queryable )
8890 cfg = config ( schema )
@@ -116,7 +118,7 @@ defmodule NestedSets.Query do
116118 @ doc """
117119 Alias for `descendants/3`.
118120 """
119- @ spec children ( Ecto.Queryable . t ( ) , struct ( ) , keyword ( ) ) :: Ecto.Query . t ( ) | nil
121+ @ spec children ( Ecto.Queryable . t ( ) , ns_node ( ) , keyword ( ) ) :: Ecto.Query . t ( ) | nil
120122 def children ( queryable , node , opts \\ [ ] ) , do: descendants ( queryable , node , opts )
121123
122124 @ doc """
@@ -128,7 +130,7 @@ defmodule NestedSets.Query do
128130 @ doc """
129131 Finds all leaf nodes (nodes without children) under a node.
130132 """
131- @ spec leaves ( Ecto.Queryable . t ( ) , struct ( ) ) :: Ecto.Query . t ( ) | nil
133+ @ spec leaves ( Ecto.Queryable . t ( ) , ns_node ( ) ) :: Ecto.Query . t ( ) | nil
132134 def leaves ( queryable , node ) do
133135 schema = get_schema ( queryable )
134136 cfg = config ( schema )
@@ -150,7 +152,7 @@ defmodule NestedSets.Query do
150152 @ doc """
151153 Finds the previous sibling of a node.
152154 """
153- @ spec prev_sibling ( Ecto.Queryable . t ( ) , struct ( ) ) :: Ecto.Query . t ( ) | nil
155+ @ spec prev_sibling ( Ecto.Queryable . t ( ) , ns_node ( ) ) :: Ecto.Query . t ( ) | nil
154156 def prev_sibling ( queryable , node ) do
155157 schema = get_schema ( queryable )
156158 cfg = config ( schema )
@@ -168,13 +170,13 @@ defmodule NestedSets.Query do
168170 @ doc """
169171 Alias for `prev_sibling/2`.
170172 """
171- @ spec prev ( Ecto.Queryable . t ( ) , struct ( ) ) :: Ecto.Query . t ( ) | nil
173+ @ spec prev ( Ecto.Queryable . t ( ) , ns_node ( ) ) :: Ecto.Query . t ( ) | nil
172174 def prev ( queryable , node ) , do: prev_sibling ( queryable , node )
173175
174176 @ doc """
175177 Finds the next sibling of a node.
176178 """
177- @ spec next_sibling ( Ecto.Queryable . t ( ) , struct ( ) ) :: Ecto.Query . t ( ) | nil
179+ @ spec next_sibling ( Ecto.Queryable . t ( ) , ns_node ( ) ) :: Ecto.Query . t ( ) | nil
178180 def next_sibling ( queryable , node ) do
179181 schema = get_schema ( queryable )
180182 cfg = config ( schema )
@@ -192,13 +194,13 @@ defmodule NestedSets.Query do
192194 @ doc """
193195 Alias for `next_sibling/2`.
194196 """
195- @ spec next ( Ecto.Queryable . t ( ) , struct ( ) ) :: Ecto.Query . t ( ) | nil
197+ @ spec next ( Ecto.Queryable . t ( ) , ns_node ( ) ) :: Ecto.Query . t ( ) | nil
196198 def next ( queryable , node ) , do: next_sibling ( queryable , node )
197199
198200 @ doc """
199201 Finds all siblings of a node (nodes with the same parent).
200202 """
201- @ spec siblings ( Ecto.Queryable . t ( ) , struct ( ) ) :: Ecto.Query . t ( ) | nil
203+ @ spec siblings ( Ecto.Queryable . t ( ) , ns_node ( ) ) :: Ecto.Query . t ( ) | nil
202204 def siblings ( queryable , node ) do
203205 schema = get_schema ( queryable )
204206 cfg = config ( schema )
@@ -245,7 +247,7 @@ defmodule NestedSets.Query do
245247 @ doc """
246248 Finds the root node for a specific tree (when using tree).
247249 """
248- @ spec root ( Ecto.Queryable . t ( ) , struct ( ) ) :: Ecto.Query . t ( ) | nil
250+ @ spec root ( Ecto.Queryable . t ( ) , ns_node ( ) ) :: Ecto.Query . t ( ) | nil
249251 def root ( queryable , node ) do
250252 schema = get_schema ( queryable )
251253 cfg = config ( schema )
@@ -262,7 +264,7 @@ defmodule NestedSets.Query do
262264 @ doc """
263265 Gets a node and all its descendants (the full subtree including the node itself).
264266 """
265- @ spec subtree ( Ecto.Queryable . t ( ) , struct ( ) ) :: Ecto.Query . t ( ) | nil
267+ @ spec subtree ( Ecto.Queryable . t ( ) , ns_node ( ) ) :: Ecto.Query . t ( ) | nil
266268 def subtree ( queryable , node ) do
267269 schema = get_schema ( queryable )
268270 cfg = config ( schema )
@@ -283,7 +285,7 @@ defmodule NestedSets.Query do
283285 @ doc """
284286 Finds nodes at a specific depth level.
285287 """
286- @ spec at_depth ( Ecto.Queryable . t ( ) , integer ( ) ) :: Ecto.Query . t ( )
288+ @ spec at_depth ( Ecto.Queryable . t ( ) , non_neg_integer ( ) ) :: Ecto.Query . t ( )
287289 def at_depth ( queryable , depth ) do
288290 schema = get_schema ( queryable )
289291 cfg = config ( schema )
@@ -295,11 +297,10 @@ defmodule NestedSets.Query do
295297 end
296298
297299 @ doc """
298- @review: not only :integer
299300 Filters by a specific tree (when using tree).
300- Accepts either a tree_id integer or a node struct .
301+ Accepts either a tree_id integer or a node.
301302 """
302- @ spec in_tree ( Ecto.Queryable . t ( ) , integer ( ) | struct ( ) ) :: Ecto.Query . t ( ) | nil
303+ @ spec in_tree ( Ecto.Queryable . t ( ) , pos_integer ( ) | ns_node ( ) ) :: Ecto.Query . t ( ) | nil
303304 def in_tree ( queryable , tree_id ) when is_integer ( tree_id ) do
304305 schema = get_schema ( queryable )
305306 cfg = config ( schema )
0 commit comments