Is there a public way to get the registry's spec at a keyword? I can envision other libs being built around the spec registry, and I'm trying to write a small one (coercions) to see if I can use spec for this use-case. Is that non-sanctioned kind of thing going forward?
The likely candidate seems 'specize'. On Wed, May 25, 2016 at 8:30 AM Rich Hickey <richhic...@gmail.com> wrote: > > Would you ever expect to use fdef/instrument active in production for > validation > > No, definitely not. It’s that kind of runtime checking (and expense) that > gives some dynamic lang checking systems a bad rep. > > The philosophy is - generative testing has made sure your function > complies with the specs. So, testing the :ret and :fn properties over and > over is redundant and serves no point. > > OTOH, you may encounter user- or externally-supplied data at runtime and > want to use the facilities of spec to validate/process it. Then you can use > valid? or conform *explicitly* to do so. > > The intent is that running with wrappers (instrumentation) should be done > only during testing. > > > On May 24, 2016, at 7:43 PM, Elliot <ell...@deck36.net> wrote: > > > > Super super excited for this feature, thanks so much for creating this. > > > > In the runtime-validation case, the guide mentions: > > > > 1. Calling `valid?` in a precondition > > 2. Calling `conform` in the fn implementation > > > > However neither of these appear to use the `fdef`/`instrument` combo, > which seems the closest to "type annotating" the function. Would you ever > expect to use fdef/instrument active in production for validation, or is > that a misunderstanding of its use? > > > > Thanks! > > > > - E > > > > > > On Tuesday, May 24, 2016 at 11:12:59 AM UTC-7, scott stackelhouse wrote: > > I restructured my data to make this section an optional sub-map, which I > think is actually better anyway. > > > > On Tuesday, May 24, 2016 at 11:08:27 AM UTC-7, scott stackelhouse wrote: > > Ok. > > > > Thanks all who have worked on this, btw. It is incredibly timely for me > and is already great help for a work project. > > > > --Scott > > > > On Tuesday, May 24, 2016 at 10:57:26 AM UTC-7, Rich Hickey wrote: > > ‘and' and ‘or’ are not currently supported in :opt > > > > > > > On May 24, 2016, at 1:45 PM, scott stackelhouse < > scott.sta...@gmail.com> wrote: > > > > > > I'm having a problem writing a spec for a map with some required > keywords and some optional keywords. The caveat here is that the optional > keywords are all or none... that is they are optional but if one is present > they must all be present. > > > > > > What I tried to write was: > > > > > > (s/keys :req [::a ::b ::c] :opt [(and ::d ::e ::f)]) > > > > > > and that fails an assertion. It appears that the logicals (and, or) > are not allowed in the optional section? > > > > > > Am I thinking about this in the wrong way? > > > > > > --Scott > > > > > > -- > > > 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 > > > 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 > > > 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. > > > 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. > > -- > 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. > -- 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.