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 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