Skip to content

Commit 28b7715

Browse files
committed
refactoring
1 parent 6b4c6b2 commit 28b7715

File tree

1 file changed

+25
-22
lines changed

1 file changed

+25
-22
lines changed

src/json_diff/core.clj

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
[lambdaisland.deep-diff2 :as ddiff]
55
[clojure.java.io :as io]
66
[editscript.core :as edcore]
7-
[editscript.edit :as edit]
7+
;; [editscript.edit :as edit]
88
[clojure.tools.cli :refer [parse-opts]])
99
(:gen-class))
1010

@@ -14,31 +14,34 @@
1414
:parse-fn #(keyword %)
1515
:validate [#(% #{:visual :patch}) "possible modes are 'visual' or 'patch'"]]])
1616

17-
(defn parse-file
18-
"open JSON file and parses it"
19-
[fn]
20-
(with-open [f (io/reader fn)]
17+
(defn parse
18+
"opens JSON file and parses it"
19+
[file-name]
20+
(with-open [f (io/reader file-name)]
2121
(json/read f)))
2222

23-
(defn parse-files
24-
"parses multiple file asynchronously"
25-
[& files]
26-
())
23+
(defn parse-async
24+
"opens JSON file and parses it asynchronously, returns channel"
25+
[file-name]
26+
(go (parse file-name)))
27+
28+
(defn process
29+
[f & files]
30+
(->> files
31+
(map parse-async)
32+
(map #(<!! %))
33+
(map f)))
2734

2835
(defn patch
29-
"returns compact patch between objects"
30-
[json1 json2]
31-
)
36+
"returns compact patch between two JSON objects"
37+
[left right]
38+
(println (edcore/diff left right {:algo :quick})))
3239

3340
(defn diff
34-
"returns visual diff between JSON files"
35-
[fn1 fn2]
36-
(let [c1 (chan)
37-
c2 (chan)]
38-
(go (>! c1 (parse-file fn1)))
39-
(go (>! c2 (parse-file fn2)))
40-
(ddiff/pretty-print
41-
(ddiff/diff (<!! c1) (<!! c2)))))
41+
"returns visual diff between two JSON objects"
42+
[left right]
43+
(ddiff/pretty-print
44+
(ddiff/diff left right)))
4245

4346
(defn -main
4447
"main function"
@@ -51,5 +54,5 @@
5154
(System/exit 1))
5255
(not= 2 (count files)) (do (println "you need to pass two JSON files!")
5356
(System/exit 1))
54-
(= :visual mode) (apply diff files)
55-
(= :patch mode) (apply patch files))))
57+
(= :visual mode) (apply process diff files)
58+
(= :patch mode) (apply process patch files))))

0 commit comments

Comments
 (0)