Hey,
I'm writing a Clojure Webapp with a CLJS Frontend and expected to be able
to cljs.reader/read-string everything I pr-str'd on the CLJ side. That
however does not work for defrecords and BigDecimals (1.1M) .
1. defrecord
In CLJ I can:
(ns dummy)
(defrecord Foo [bar])
(pr-str (Foo. 1)) ; => "#dummy.Foo{:bar 1}"
in CLJS however this will print as
"#Foo{:bar 1}"
missing the Namespace. I found an old
post<https://groups.google.com/d/msg/clojure/YSkPd4zQTKQ/757Wd4Ex8pAJ>about
this but no other information.
Also when I pr-str this record in CLJ and cljs.reader/read-string it in
CLJS it fails with "Could not find tag parser for dummy.Foo in ("inst"
"uuid" "queue") ", although the defrecord exists and is in the same ns
(actually a cljsbuild crossover). I figured out that I can
(cljs.reader/register-tag-parser! 'dummy.Foo make-foo) but thats seems
faulty. I read about EDN and understand why the reader would think its
reading a Tag but I can do read-string in CLJ just fine. Shouldnt both
sides be equal here?
2. BigDecimals:
I understand that JavaScript has no BigDecimals and I can live with
js/parseFloat on the Client for now, however is there any way I can hint
the CLJS printer to print "1.1" as "1.1M"?
On the Topic of EDN: How would I "tag" a value in CLJ(S) to print {:foo
"bar"} as #my/tag {:foo "bar"}? The docs only talk about data_readers.clj.
The answers probably lie in the sources, but I hope somebody here has a
quick answer. ;)
Cheers,
/thomas
PS: I'd actually prefer using "tagged" literals instead of the defrecord
constructor form since I dont trust anything coming from the client even it
looks like clojure data. Is there some protocol I can implement for the
record and have it print as tagged instead? For CLJ and CLJS? :)
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en