From 8c5cc4ee671542b93034002eeda82a8f146e9bea Mon Sep 17 00:00:00 2001 From: Michiel Borkent Date: Sat, 16 Nov 2019 11:01:27 +0100 Subject: [PATCH] [#103] add .write and .append support for BufferedWriter --- reflection.json | 6 ++++++ src/babashka/main.clj | 1 + test/babashka/main_test.clj | 10 ++++++++++ 3 files changed, 17 insertions(+) diff --git a/reflection.json b/reflection.json index 05ee8773..1adb0a2a 100644 --- a/reflection.json +++ b/reflection.json @@ -17,6 +17,12 @@ "allPublicFields": true, "allPublicConstructors": true }, + { + "name":"java.io.BufferedWriter", + "allPublicMethods":true, + "allPublicFields": true, + "allPublicConstructors": true + }, { "name":"java.io.BufferedReader", "allPublicMethods":true diff --git a/src/babashka/main.clj b/src/babashka/main.clj index 3f4accf9..5c160aae 100644 --- a/src/babashka/main.clj +++ b/src/babashka/main.clj @@ -216,6 +216,7 @@ Everything after that is bound to *command-line-args*.")) :classes {'java.lang.ArithmeticException ArithmeticException 'java.lang.AssertionError AssertionError 'java.lang.Boolean Boolean + 'java.io.BufferedWriter java.io.BufferedWriter 'java.lang.Class Class 'java.lang.Double Double 'java.lang.Exception Exception diff --git a/test/babashka/main_test.clj b/test/babashka/main_test.clj index 05f5858a..a58674a8 100644 --- a/test/babashka/main_test.clj +++ b/test/babashka/main_test.clj @@ -247,3 +247,13 @@ (bb nil "(vec (.split (java.util.regex.Pattern/compile \"f\") \"1f2f3\"))"))) (is (= java.util.regex.Pattern/CANON_EQ (bb nil "java.util.regex.Pattern/CANON_EQ")))) + +(deftest writer-test + (let [tmp-file (java.io.File/createTempFile "bbb" "bbb") + path (.getPath tmp-file)] + (bb nil (format "(with-open [w (io/writer \"%s\")] + (.write w \"foobar\n\") + (.append w \"barfoo\n\") + nil)" + path)) + (is (= "foobar\nbarfoo\n" (slurp path)))))