Add ITransientSet and org.flatland/ordered-set
This commit is contained in:
parent
6d4737ce77
commit
59cd6a829a
6 changed files with 28 additions and 7 deletions
|
|
@ -10,6 +10,7 @@ A preview of the next release can be installed from
|
|||
## Unreleased
|
||||
|
||||
- Fix [#1688](https://github.com/babashka/babashka/issues/1688): use-fixtures should add metadata to `*ns*`
|
||||
- Fix [#1692](https://github.com/babashka/babashka/issues/1692): Add support for ITransientSet and org.flatland/ordered-set
|
||||
|
||||
## 1.3.190 (2024-04-17)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,14 @@
|
|||
(ns babashka.impl.ordered
|
||||
{:no-doc true}
|
||||
(:require [flatland.ordered.map :as omap]
|
||||
[flatland.ordered.set :as oset]
|
||||
[sci.core :as sci]))
|
||||
|
||||
(def omap-ns (sci/create-ns 'flatland.ordered.map nil))
|
||||
(def oset-ns (sci/create-ns 'flatland.ordered.set nil))
|
||||
|
||||
(def ordered-map-ns
|
||||
(def ordered-ns
|
||||
{'ordered-map (sci/copy-var omap/ordered-map omap-ns)})
|
||||
|
||||
(def ordered-set-ns
|
||||
{'ordered-set (sci/copy-var oset/ordered-set oset-ns)})
|
||||
|
|
|
|||
|
|
@ -600,6 +600,7 @@
|
|||
clojure.lang.IRef
|
||||
clojure.lang.ISeq
|
||||
clojure.lang.IPersistentVector
|
||||
clojure.lang.ITransientSet
|
||||
clojure.lang.ITransientVector
|
||||
clojure.lang.Iterate
|
||||
clojure.lang.LispReader$Resolver
|
||||
|
|
|
|||
|
|
@ -427,7 +427,8 @@ Use bb run --help to show this help output.
|
|||
'clojure.data.xml.event @(resolve 'babashka.impl.xml/xml-event-namespace)
|
||||
'clojure.data.xml.tree @(resolve 'babashka.impl.xml/xml-tree-namespace))
|
||||
features/yaml? (assoc 'clj-yaml.core @(resolve 'babashka.impl.yaml/yaml-namespace)
|
||||
'flatland.ordered.map @(resolve 'babashka.impl.ordered/ordered-map-ns))
|
||||
'flatland.ordered.map @(resolve 'babashka.impl.ordered/ordered-map-ns)
|
||||
'flatland.ordered.set @(resolve 'babashka.impl.ordered/ordered-set-ns))
|
||||
features/jdbc? (assoc 'next.jdbc @(resolve 'babashka.impl.jdbc/njdbc-namespace)
|
||||
'next.jdbc.sql @(resolve 'babashka.impl.jdbc/next-sql-namespace)
|
||||
'next.jdbc.result-set @(resolve 'babashka.impl.jdbc/result-set-namespace))
|
||||
|
|
@ -487,7 +488,8 @@ Use bb run --help to show this help output.
|
|||
|
||||
(def edn-readers (cond-> {}
|
||||
features/yaml?
|
||||
(assoc 'ordered/map @(resolve 'flatland.ordered.map/ordered-map))
|
||||
(assoc 'ordered/map @(resolve 'flatland.ordered.map/ordered-map)
|
||||
'ordered/set @(resolve 'flatland.ordered.set/ordered-set))
|
||||
features/xml?
|
||||
(assoc 'xml/ns @(resolve 'clojure.data.xml.name/uri-symbol)
|
||||
'xml/element @(resolve 'clojure.data.xml.node/tagged-element))))
|
||||
|
|
|
|||
|
|
@ -50,7 +50,8 @@
|
|||
(do (write {"format" (if (= format :json)
|
||||
"json"
|
||||
"edn")
|
||||
"readers" {"ordered/map" "flatland.ordered.map/ordered-map"}
|
||||
"readers" {"ordered/map" "flatland.ordered.map/ordered-map"
|
||||
"ordered/set" "flatland.ordered.set/ordered-set"}
|
||||
"namespaces"
|
||||
[{"name" "pod.test-pod"
|
||||
"vars" [{"name" "add-sync"}
|
||||
|
|
@ -64,7 +65,8 @@
|
|||
{"name" "error"}
|
||||
{"name" "print"}
|
||||
{"name" "print-err"}
|
||||
{"name" "ordered-map"}]}]
|
||||
{"name" "ordered-map"}
|
||||
{"name" "ordered-set"}]}]
|
||||
"ops" {"shutdown" {}}})
|
||||
(recur))
|
||||
:invoke (let [var (-> (get message "var")
|
||||
|
|
@ -119,6 +121,11 @@
|
|||
pod.test-pod/ordered-map
|
||||
(write
|
||||
{"value" "#ordered/map([:a 1] [:b 2])"
|
||||
"status" ["done"]
|
||||
"id" id})
|
||||
pod.test-pod/ordered-set
|
||||
(write
|
||||
{"value" "#ordered/set([:a 1 :b 2])"
|
||||
"status" ["done"]
|
||||
"id" id}))
|
||||
(recur))
|
||||
|
|
@ -159,4 +166,7 @@
|
|||
(debug "Running reader test")
|
||||
(require '[flatland.ordered.map :refer [ordered-map]])
|
||||
(prn (= ((resolve 'flatland.ordered.map/ordered-map) :a 1 :b 2)
|
||||
((resolve 'pod.test-pod/ordered-map)))))))))
|
||||
((resolve 'pod.test-pod/ordered-map))))
|
||||
(require '[flatland.ordered.set :refer [ordered-set]])
|
||||
(prn (= ((resolve 'flatland.ordered.set/ordered-set) :a 1 :b 2)
|
||||
((resolve 'pod.test-pod/ordered-set)))))))))
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
[clojure.string :as str]
|
||||
[clojure.test :as test :refer [deftest is testing]]
|
||||
[flatland.ordered.map :refer [ordered-map]]
|
||||
[flatland.ordered.set :refer [ordered-set]]
|
||||
[sci.core :as sci]))
|
||||
|
||||
(defn bb [input & args]
|
||||
|
|
@ -632,7 +633,8 @@
|
|||
(is (= 2 (bb nil "(set! *data-readers* {'t/tag inc}) #t/tag 1"))))
|
||||
|
||||
(deftest ordered-test
|
||||
(is (= (ordered-map :a 1 :b 2) (bb nil "(flatland.ordered.map/ordered-map :a 1 :b 2)"))))
|
||||
(is (= (ordered-map :a 1 :b 2) (bb nil "(flatland.ordered.map/ordered-map :a 1 :b 2)")))
|
||||
(is (= (ordered-set :a 1 :b 2) (bb nil "(flatland.ordered.map/ordered-set :a 1 :b 2)"))))
|
||||
|
||||
(deftest data-diff-test
|
||||
(is (= [[nil 1] [nil 2] [1 nil 2]] (bb nil "(require '[clojure.data :as d]) (d/diff [1 1 2] [1 2 2])"))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue