{"action":"created","issue":{"url":"https://api.github.com/repos/wix/accord/issues/66","repository_url":"https://api.github.com/repos/wix/accord","labels_url":"https://api.github.com/repos/wix/accord/issues/66/labels{/name}","comments_url":"https://api.github.com/repos/wix/accord/issues/66/comments","events_url":"https://api.github.com/repos/wix/accord/issues/66/events","html_url":"https://github.com/wix/accord/issues/66","id":146366759,"number":66,"title":"Resolving property names in explicit validators","user":{"login":"zunder","id":6862750,"avatar_url":"https://avatars.githubusercontent.com/u/6862750?v=3","gravatar_id":"","url":"https://api.github.com/users/zunder","html_url":"https://github.com/zunder","followers_url":"https://api.github.com/users/zunder/followers","following_url":"https://api.github.com/users/zunder/following{/other_user}","gists_url":"https://api.github.com/users/zunder/gists{/gist_id}","starred_url":"https://api.github.com/users/zunder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zunder/subscriptions","organizations_url":"https://api.github.com/users/zunder/orgs","repos_url":"https://api.github.com/users/zunder/repos","events_url":"https://api.github.com/users/zunder/events{/privacy}","received_events_url":"https://api.github.com/users/zunder/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/wix/accord/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"holograph","id":1114848,"avatar_url":"https://avatars.githubusercontent.com/u/1114848?v=3","gravatar_id":"","url":"https://api.github.com/users/holograph","html_url":"https://github.com/holograph","followers_url":"https://api.github.com/users/holograph/followers","following_url":"https://api.github.com/users/holograph/following{/other_user}","gists_url":"https://api.github.com/users/holograph/gists{/gist_id}","starred_url":"https://api.github.com/users/holograph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/holograph/subscriptions","organizations_url":"https://api.github.com/users/holograph/orgs","repos_url":"https://api.github.com/users/holograph/repos","events_url":"https://api.github.com/users/holograph/events{/privacy}","received_events_url":"https://api.github.com/users/holograph/received_events","type":"User","site_admin":false},"milestone":null,"comments":3,"created_at":"2016-04-06T16:32:41Z","updated_at":"2016-05-05T10:27:29Z","closed_at":null,"body":"I am having two validators defined in companion object of class `Bar(minValue: Double, maxValue: Double)`:\r\n\r\n1. `defaultBarValidator` is implicit\r\n2. `specialBarValidator` is not\r\n\r\nThere is also a class `Foo(bar: Bar)`. `Foo`'s validator explicitly calls the `specialBarValidator` validator on property by calling `foo.bar is specialBarValidator`. `specialBarValidator` looks like this:\r\n\r\n```Scala\r\n  lazy val specialBarValidator: Validator[Bar] = validator[Bar] { b =>\r\n    b.minValue should be >= 0.5\r\n    b.maxValue should be <= 1.0\r\n  }\r\n```\r\n\r\nThe validator works, but I am loosing the description information here. Instead of full path `bar.minValue`, I am only getting `bar`. Using implicit validator I am getting full description."},"comment":{"url":"https://api.github.com/repos/wix/accord/issues/comments/217120086","html_url":"https://github.com/wix/accord/issues/66#issuecomment-217120086","issue_url":"https://api.github.com/repos/wix/accord/issues/66","id":217120086,"user":{"login":"holograph","id":1114848,"avatar_url":"https://avatars.githubusercontent.com/u/1114848?v=3","gravatar_id":"","url":"https://api.github.com/users/holograph","html_url":"https://github.com/holograph","followers_url":"https://api.github.com/users/holograph/followers","following_url":"https://api.github.com/users/holograph/following{/other_user}","gists_url":"https://api.github.com/users/holograph/gists{/gist_id}","starred_url":"https://api.github.com/users/holograph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/holograph/subscriptions","organizations_url":"https://api.github.com/users/holograph/orgs","repos_url":"https://api.github.com/users/holograph/repos","events_url":"https://api.github.com/users/holograph/events{/privacy}","received_events_url":"https://api.github.com/users/holograph/received_events","type":"User","site_admin":false},"created_at":"2016-05-05T10:27:29Z","updated_at":"2016-05-05T10:27:29Z","body":"Interesting conundrum: what should be the result?\r\n\r\n* With the built-in delegation mechanism you would use `f.bar is valid(specialBarValidator)`; the resulting failure would include a `GroupViolation` that composes the specific rule failures, providing the complete information.\r\n* `is` is intended for rules, which is why no `GroupViolation` is generated. Should the behavior in this case be identical to `valid`, or should the rendered description include the path information (e.g. `bar.minValue`)?\r\n\r\nComments would be appreciated...\r\n"}}