std.object.query.order

first-terms-fn

added in 3.0

(first-terms-fn grp)

creates a function that returns the first element of the list

((order/first-terms-fn {:first true}) 1 2 3) => 1

merge-terms-fn

added in 3.0

(merge-terms-fn grp)

creates a function that returns the first element of the list

(-> (query/query-class (type []) “create”) ((order/merge-terms-fn {:merge true}))) ;;=> #[create :: (java.util.List), (clojure.lang.ISeq), ;; (clojure.lang.IReduceInit), ([java.lang.Object[]]), ;; (java.lang.Iterable)]

order

added in 3.0

(order grp eles)

formats an output for

(->> (query/query-class (type []) “create”) (order/order {:select-terms :params})) ;;=> (java.util.List clojure.lang.ISeq ;; clojure.lang.IReduceInit [Ljava.lang.Object; ;; java.lang.Iterable)

select-terms-fn

added in 3.0

(select-terms-fn grp)

creates a function that selects terms to output

(-> (query/query-class (type []) “create”) ((order/select-terms-fn {:select-terms :name}))) => “create”

sort-fn

added in 3.0

(sort-fn f)

returns a function taking two inputs x and y, comparing the outputs after applying f to both

((order/sort-fn :id) {:id 1} {:id 2}) => -1

sort-terms-fn

added in 3.0

(sort-terms-fn grp)

This is a little broken, it is supposed to sort on various keys, but currently only works with :name

((order/sort-terms-fn {:sort-terms nil}) {:name 3} {:name 1} {:name 2}) => {:name 1} {:name 2} {:name 3}