If I'm not mistaken, similar issue was recently discussed on the
Clojurians Slack (direct link -
https://clojurians.slack.com/archives/clojure-spec/p1467382200001722 ,
archive link -
https://clojurians-log.clojureverse.org/clojure-spec/2016-07-01.html -
discussion starts from @ghadi's post at 17:10:00).
The basic idea is to validate namespaced keywords first, remove them
using the conformer, and then validate rest of the keys.
On вт, лип 5, 2016 at 4:32 , Sam Estep <samuel.es...@gmail.com>
wrote:
I ran into this same issue while trying to spec Clojure's
destructuring language. I asked a question about this on Stack
Overflow: http://stackoverflow.com/q/38151446/5044950
On Tuesday, July 5, 2016 at 9:16:40 AM UTC-4, Nikita Prokopov wrote:
Imagine I have a generic keyword => string map with a special key
that stores a number:
{ ::count 7
:x "x"
:y "y"
:z "z"
... }
Both cases are easy to validate on their own:
(s/def ::count number?)
(s/conform (s/keys ::count) { ::count 7 })
(s/conform (s/map-of keyword? string?) { :x "x", :y "y", :z "z" })
But how do I write a spec to validate them when they are in a single
map?
I tried to use s/every but then another problem popped up: how do I
reference or check another spec from inside s/every predicate? In my
case, values are more complex than string? and have their own spec.
Please help
Nikita
--
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.