HI Malcolm

Yup, that's much better.  Thanks for the quick reply

Cheers

Adrian


On Wednesday, 1 January 2014 20:16:50 UTC, Malcolm Sparks wrote:
>
> Hi Adrian,
>
> Yes, it was the missing clojars deployment. 1.8.0 is up there now. 1.7.0 
> doesn't have the map representation, which I added to the existing 
> vector-of-vectors syntax and moved the README examples to. Please try now.
>
> Regards,
>
> Malcolm
>
>
> On 1 January 2014 20:06, Adrian Mowat <adrian...@gmail.com 
> <javascript:>>wrote:
>
>> Hi Malcolm,
>>
>> I'm working through the examples and I am getting exceptions when I try 
>> defining multiple routes.  I noticed the 1.8.0 is mentioned in the docs but 
>> the highest version on clojars is 1.7.0.  Is clojars up to date.
>>
>> Stacktraces as follows
>>
>> user=> (def routes ["/" {"index.html" :index
>>   #_=>                         "articles/" {"index.html" :article-index
>>   #_=>                                      "article.html" :article}}])
>> #'user/routes
>> user=> (match-route routes "/index.html")
>>
>> java.lang.IllegalArgumentException: No implementation of method: 
>> :resolve-handler of protocol: #'bidi.bidi/Matched found for class: 
>> clojure.lang.PersistentHashMap
>>                                           
>>  clojure.core/-cache-protocol-fn         core_deftype.clj:  541
>>                                                   
>>  bidi.bidi/eval3017/fn/G                 bidi.clj:   87
>>                                                       
>> bidi.bidi/match-pair                 bidi.clj:   97
>>                                                     
>>  bidi.bidi/match-route                 bidi.clj:  193
>>                                                 
>> clojure.lang.RestFn.invoke              RestFn.java:  425
>>                                                       
>> user$eval3329.invoke           NO_SOURCE_FILE:    1
>> user=>                                                 
>> clojure.lang.Compiler.eval            Compiler.java: 6619
>>                                                 
>> clojure.lang.Compiler.eval            Compiler.java: 6582
>>                                                         
>>  clojure.core/eval                 core.clj: 2852
>>                                       
>> clojure.main/repl/read-eval-print/fn                 main.clj:  259
>>                                         
>>  clojure.main/repl/read-eval-print                 main.clj:  259
>>                                                       
>> clojure.main/repl/fn                 main.clj:  277
>>                                                         
>>  clojure.main/repl                 main.clj:  277
>>                                                 
>> clojure.lang.RestFn.invoke              RestFn.java: 1096
>>             
>>  clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn   
>> interruptible_eval.clj:   56
>>                                             
>> clojure.lang.AFn.applyToHelper                 AFn.java:  159
>>                                                   
>> clojure.lang.AFn.applyTo                 AFn.java:  151
>>                                                         
>> clojure.core/apply                 core.clj:  617
>>                                               
>>  clojure.core/with-bindings*                 core.clj: 1788
>>                                                 
>> clojure.lang.RestFn.invoke              RestFn.java:  425
>>                 
>> clojure.tools.nrepl.middleware.interruptible-eval/evaluate   
>> interruptible_eval.clj:   41
>> clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn 
>>   interruptible_eval.clj:  171
>>                                                       
>> clojure.core/comp/fn                 core.clj: 2330
>>             
>>  clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn   
>> interruptible_eval.clj:  138
>>                                                       
>> clojure.lang.AFn.run                 AFn.java:   24
>>                         
>>  java.util.concurrent.ThreadPoolExecutor.runWorker 
>>  ThreadPoolExecutor.java: 1110
>>                         
>> java.util.concurrent.ThreadPoolExecutor$Worker.run 
>>  ThreadPoolExecutor.java:  603
>>                                                       
>> java.lang.Thread.run              Thread.java:  722
>> (match-
>>
>> user=> 
>>
>> user=> (path-for routes :index)
>>
>> java.lang.IllegalArgumentException: No implementation of method: 
>> :unresolve-handler of protocol: #'bidi.bidi/Matched found for class: 
>> clojure.lang.PersistentHashMap
>>                                           
>>  clojure.core/-cache-protocol-fn         core_deftype.clj:  541
>>                                                   
>>  bidi.bidi/eval3017/fn/G                 bidi.clj:   87
>>                                                     
>> bidi.bidi/unmatch-pair                 bidi.clj:  149
>>                                                         
>> bidi.bidi/path-for                 bidi.clj:  201
>>                                                 
>> clojure.lang.RestFn.invoke              RestFn.java:  425
>>                                                       
>> user$eval3331.invoke           NO_SOURCE_FILE:    1
>>                                                 
>> clojure.lang.Compiler.eval            Compiler.java: 6619
>>                                                 
>> clojure.lang.Compiler.eval            Compiler.java: 6582
>>                                                         
>>  clojure.core/eval                 core.clj: 2852
>>                                       
>> clojure.main/repl/read-eval-print/fn                 main.clj:  259
>>                                         
>>  clojure.main/repl/read-eval-print                 main.clj:  259
>>                                                       
>> clojure.main/repl/fn                 main.clj:  277
>>                                                         
>>  clojure.main/repl                 main.clj:  277
>>                                                 
>> clojure.lang.RestFn.invoke              RestFn.java: 1096
>>             
>>  clojure.tools.nrepl.middleware.interruptible-eval/evaluate/fn   
>> interruptible_eval.clj:   56
>>                                             
>> clojure.lang.AFn.applyToHelper                 AFn.java:  159
>>                                                   
>> clojure.lang.AFn.applyTo                 AFn.java:  151
>>                                                         
>> clojure.core/apply                 core.clj:  617
>>                                               
>>  clojure.core/with-bindings*                 core.clj: 1788
>> user=>                                                 
>> clojure.lang.RestFn.invoke              RestFn.java:  425
>>                 
>> clojure.tools.nrepl.middleware.interruptible-eval/evaluate   
>> interruptible_eval.clj:   41
>> clojure.tools.nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn 
>>   interruptible_eval.clj:  171
>>                                                       
>> clojure.core/comp/fn                 core.clj: 2330
>>             
>>  clojure.tools.nrepl.middleware.interruptible-eval/run-next/fn   
>> interruptible_eval.clj:  138
>>                                                       
>> clojure.lang.AFn.run                 AFn.java:   24
>>                         
>>  java.util.concurrent.ThreadPoolExecutor.runWorker 
>>  ThreadPoolExecutor.java: 1110
>>                         
>> java.util.concurrent.ThreadPoolExecutor$Worker.run 
>>  ThreadPoolExecutor.java:  603
>>                                                       
>> java.lang.Thread.run              Thread.java:  722
>>
>>
>>
>>
>> On Wednesday, 1 January 2014 12:37:16 UTC, Malcolm Sparks wrote:
>>>
>>> I'd like to announce a new URI routing library called bidi.
>>>
>>> If you're planning to write HTTP/web applications in Clojure in 2014, 
>>> chances are you'll be including hyperlinks (URIs) in your 
>>> pages/views/templates. After all, this is what the web is all about. But 
>>> the code that includes/generates your URIs can get tightly coupled with the 
>>> code that dispatches on them (Compojure routes, etc.), this can lead to 
>>> broken links if you're not careful.
>>>
>>> Having used Pedestal services in many of my systems, I'd made heavy use 
>>> of the (url-for) function. But I found it difficult to extract the Pedestal 
>>> routing code from the rest of the Pedestal back-end concepts. When I wanted 
>>> to be able to use http-kit for another project, this prevented me from 
>>> using Pedestal and I really missed the ability to form URIs - I wanted was 
>>> the (url-for) function back!
>>>
>>> Like Pedestal, bidi starts with a data description of your routes - 
>>> acting as the basis for both the generation of URIs and the dispatch to 
>>> your handlers. However, bidi only offers URI routing and formation - 
>>> nothing else - so it can be used for 'traditional' Ring web apps, http-kit, 
>>> Liberator and so on. With a little work it should work well with 
>>> ClojureScript too, since it is based on protocols rather than macros.
>>>
>>> You can find more about bidi, with code examples, here: 
>>> https://github.com/juxt/bidi
>>>
>>> While I've been thinking about writing bidi for a long time (hoping 
>>> someone else more capable than me would write it!), the actual code is very 
>>> new and so all the usual disclaimers apply. However, I'd be very grateful 
>>> for feedback on this new library - what you like and dislike about it, 
>>> initial impressions, complaints, alternatives you know about and any 
>>> questions etc..
>>>
>>> And finally I'd like to wish everyone on this list a Happy New Year and 
>>> the very best for your Clojure hacking activies in 2014.
>>>
>>>
>>> Malcolm
>>>
>>> JUXT - https://juxt.pro
>>>
>>>
>>>  -- 
>> -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clo...@googlegroups.com<javascript:>
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+u...@googlegroups.com <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- 
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "Clojure" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/clojure/Ueeh-Sbw-AI/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> clojure+u...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to