Hi Jason, That's a great question, thanks.
The exception you point out is just a bug: https://github.com/Prismatic/schema/issues/263. Preconditions currently wrap exceptions and return sensible validation errors, we just missed this in guards. Will address this ASAP and cut a new release. Outside of that, I can still potentially see the desire to specify postconditions rather than preconditions (you'd rather see an error (not (integer? "1")) than (throws? (odd? "1")), which will be the behavior when the bug is fixed. We're thinking about whether it's worth the extra complexity to support that, what are your thoughts? If you think it would be valuable, please open another issue on github so we can track it -- thanks. As for your solution (s/conditional number? (s/pred pos?)), that will also work fine, and you can still use the generator support -- you will just have to pass in a leaf generator for your schema (although this admittedly isn't ideal). Thanks, Jason On Wednesday, September 2, 2015 at 9:02:37 AM UTC-7, Jason Felice wrote: > > I have a question: "both" is deprecated with a note to use > "s/conditional" instead. However, that doesn't work for my case. > > I have the following: (s/both s/Int (s/pred pos?)) > > If I rewrite it to (s/conditional pos? s/Int), this throws: > > (s/check (s/conditional pos? s/Int) "") > > Since (as far as I can tell), I can't verify the type is numeric before > applying pos? > > I could do this: (s/conditional number? (s/pred pos?)), but I'm going to > guess this will defeat test.check support, which I'd like to use. > > Thoughts? > > On Tue, Sep 1, 2015 at 2:02 PM, Jason Wolfe <ja...@w01fe.com <javascript:> > > wrote: > >> We're excited to finally bring Schema out of alpha, while introducing >> some new exciting features around testing: test.check integration and data >> completion. Check out the blog post for details about these new >> applications. >> >> http://blog.getprismatic.com/schema-1-0-released/ >> >> We've also rewritten the internals of schema for this release, to make it >> easier and faster to add new schema types and applications. We expect >> ordinary users of Schema should see no breaking changes, but custom schema >> types or tooling will likely need to be updated. Please see the changelog >> for details. >> >> https://github.com/Prismatic/schema/blob/master/CHANGELOG.md >> >> Comments and suggestions welcome! >> >> -- >> 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 the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+u...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- 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/d/optout.