Here is what I came up with (defmethod print-method java.net.URI [x w] (print-method (symbol (format "#uri [%s]" (symbol (str x)))) w))
(pr-str (java.net.URI. "www.google.com")) "#uri [http://www.google.com" If used with the cljs parser from above, it works. Thanks On Wednesday, January 9, 2013 7:51:11 PM UTC-6, Dave Sann wrote: > > It's not going to be easy to read the #<URI form in clojurescript I think. > > On the server, I would extend the the print-string (I think its called > this - you will need to look at the core source code) multi-method. You can > use this to make java....URI print as a string or as a tagged literal if > you need it. > > D > > On Thursday, 10 January 2013 12:42:33 UTC+11, Taylor Sando wrote: >> >> The URIs are coming from a datomic database that actually stores the >> values as java.net.URIs. All I'm doing is transferring the query values >> from the database to the client. The server uses pr-str before sending >> back the results, and the client uses reader/read-string to get the >> results. >> >> On Wednesday, January 9, 2013 7:35:31 PM UTC-6, Dave Sann wrote: >>> >>> why not just print/send your uris as strings? >>> >>> you only need a reader tag if you want to read/interpret it in a >>> particular way at read time in the client. do you want to do this? >>> >>> D >>> >>> >>> On Thursday, 10 January 2013 12:20:53 UTC+11, Taylor Sando wrote: >>>> >>>> I am looking for a way to transfer URI objects from a clojure client to >>>> a clojurescript client. The printed representation of a java.net.URI >>>> object is #<URI "http//www.example.com> The problem is that I can't >>>> read in this data when it's structured like that. For example, I'd like >>>> to >>>> be able to pass this data strucutre to the client {:uri #<URI >>>> http://www.google.com>}. From my understanding, the extensible reader >>>> needs something in the form of #symbol [value]. >>>> >>>> I know how to extend the clojurescript reader: >>>> >>>> (defn make-url [stuff] >>>> (str (first stuff))) >>>> >>>> (reader/register-tag-parser! 'URI make-url) >>>> >>>> (assert (= "http://www.google.com" (reader/read-string "#URI [ >>>> http://www.google.com]"))) >>>> >>>> I know that I could just map over the data structure and convert the >>>> uris to strings, and then send that to the client, but it seems like there >>>> should be a better way. >>>> >>> -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en