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.

Reply via email to