Closed yPhil-gh closed 11 years ago
frak escapes the "
character along with several others. Try dropping the quotes around the input.
@noprompt Thanks for your answer ; I tried that and many other things, allways getting a Exception in thread "main" java.lang.RuntimeException: java.lang.AssertionError: Assert failed: (every? string? strs)
so I'm really wondering how to pass arguments to frak...?
(require 'frak)
(defn -main [& args]
"I don't do a whole lot."
(println (apply str args))
(println "vector output : %s" (frak/pattern (vector args))))
$ lein trampoline run plip ploup plipploup Exception in thread "main" java.lang.RuntimeException: java.lang.AssertionError: Assert failed: (every? string? strs) at clojure.lang.Util.runtimeException(Util.java:165) at clojure.lang.Compiler.eval(Compiler.java:6476) at clojure.lang.Compiler.eval(Compiler.java:6455) at clojure.lang.Compiler.eval(Compiler.java:6431) at clojure.core$eval.invoke(core.clj:2795) at clojure.main$eval_opt.invoke(main.clj:296) at clojure.main$initialize.invoke(main.clj:315) at clojure.main$null_opt.invoke(main.clj:348) at clojure.main$main.doInvoke(main.clj:426) at clojure.lang.RestFn.invoke(RestFn.java:421) at clojure.lang.Var.invoke(Var.java:405) at clojure.lang.AFn.applyToHelper(AFn.java:163) at clojure.lang.Var.applyTo(Var.java:518) at clojure.main.main(main.java:37) Caused by: java.lang.AssertionError: Assert failed: (every? string? strs) at frak$pattern.invoke(frak.clj:87) at frak$pattern.invoke(frak.clj:90) at regard.core$_main.doInvoke(core.clj:8) at clojure.lang.RestFn.invoke(RestFn.java:421) at clojure.lang.Var.invoke(Var.java:405) at user$eval38.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:6465) ... 12 more
Two things here. First, the form
(println "vector output : %s" (frak/pattern (vector args)))
should be
(println "vector output : %s" (frak/pattern (vec args)))
or even better just
(println "vector output : %s" (frak/pattern args))
vec
will convert args
to a vector; (vector args)
is a vector containing one element, the list args
. This is why you are seeing the AssertionError
.
Second, you should upgrade to v0.1.3
where it no longer uses the precondition (every? string? strs)
. Be aware, however, every element in the collection you pass to frak/pattern
will be converted to a string.
(vec args)
did it, thank you very much.
Glad I could help. :smile:
I tried to integrate frak into a regular Clojure projet (https://gist.github.com/xaccrocheur/6333714#file-frak-command-line-attempts) but I cannot seem to get it to take my arguments, a clean vector of strings..?