{"action":"closed","issue":{"url":"https://api.github.com/repos/dry-rb/dry-types/issues/87","repository_url":"https://api.github.com/repos/dry-rb/dry-types","labels_url":"https://api.github.com/repos/dry-rb/dry-types/issues/87/labels{/name}","comments_url":"https://api.github.com/repos/dry-rb/dry-types/issues/87/comments","events_url":"https://api.github.com/repos/dry-rb/dry-types/issues/87/events","html_url":"https://github.com/dry-rb/dry-types/issues/87","id":153612654,"number":87,"title":"Add a better Hash::Schema sub-type suitable for dry-v","user":{"login":"solnic","id":1066,"avatar_url":"https://avatars.githubusercontent.com/u/1066?v=3","gravatar_id":"","url":"https://api.github.com/users/solnic","html_url":"https://github.com/solnic","followers_url":"https://api.github.com/users/solnic/followers","following_url":"https://api.github.com/users/solnic/following{/other_user}","gists_url":"https://api.github.com/users/solnic/gists{/gist_id}","starred_url":"https://api.github.com/users/solnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/solnic/subscriptions","organizations_url":"https://api.github.com/users/solnic/orgs","repos_url":"https://api.github.com/users/solnic/repos","events_url":"https://api.github.com/users/solnic/events{/privacy}","received_events_url":"https://api.github.com/users/solnic/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dry-rb/dry-types/labels/feature","name":"feature","color":"0052cc"},{"url":"https://api.github.com/repos/dry-rb/dry-types/labels/help%20wanted","name":"help wanted","color":"159818"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-05-07T19:24:51Z","updated_at":"2016-06-15T10:45:54Z","closed_at":"2016-06-15T10:45:54Z","body":"Currently we use `Types::Safe` with `Types::Hash::Schema::Symbolized` for input-processors. Unfortunately its current behavior has a major issue - when applying, value coercion results in a type error, the safe type will rescue from that and return original input. This is not acceptable in dry-v context since it results in getting the original input back so we *cannot apply validation rules* as basic `key?` checks fails since we don't even get symbolized keys back.\r\n\r\nWe need two things:\r\n\r\n1) Symbolizing keys\r\n2) Using `Type#try` for value coercion and setting original value in the resulting hash *if* result is a failure\r\n\r\nRefs dry-rb/dry-validation#131\r\nRefs dry-rb/dry-validation#132\r\nRefs dry-rb/dry-validation#133\r\n"}}
{"actor":{"display_login":"solnic"}}