{"action":"created","issue":{"url":"https://api.github.com/repos/ckeditor/ckeditor5-ui/issues/60","repository_url":"https://api.github.com/repos/ckeditor/ckeditor5-ui","labels_url":"https://api.github.com/repos/ckeditor/ckeditor5-ui/issues/60/labels{/name}","comments_url":"https://api.github.com/repos/ckeditor/ckeditor5-ui/issues/60/comments","events_url":"https://api.github.com/repos/ckeditor/ckeditor5-ui/issues/60/events","html_url":"https://github.com/ckeditor/ckeditor5-ui/pull/60","id":169393138,"number":60,"title":"t/35: Implement event delegation mechanism","user":{"login":"oleq","id":1099479,"avatar_url":"https://avatars.githubusercontent.com/u/1099479?v=3","gravatar_id":"","url":"https://api.github.com/users/oleq","html_url":"https://github.com/oleq","followers_url":"https://api.github.com/users/oleq/followers","following_url":"https://api.github.com/users/oleq/following{/other_user}","gists_url":"https://api.github.com/users/oleq/gists{/gist_id}","starred_url":"https://api.github.com/users/oleq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oleq/subscriptions","organizations_url":"https://api.github.com/users/oleq/orgs","repos_url":"https://api.github.com/users/oleq/repos","events_url":"https://api.github.com/users/oleq/events{/privacy}","received_events_url":"https://api.github.com/users/oleq/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ckeditor/ckeditor5-ui/labels/status:review-","name":"status:review-","color":"ee6622"}],"state":"open","locked":false,"assignee":{"login":"scofalik","id":1502228,"avatar_url":"https://avatars.githubusercontent.com/u/1502228?v=3","gravatar_id":"","url":"https://api.github.com/users/scofalik","html_url":"https://github.com/scofalik","followers_url":"https://api.github.com/users/scofalik/followers","following_url":"https://api.github.com/users/scofalik/following{/other_user}","gists_url":"https://api.github.com/users/scofalik/gists{/gist_id}","starred_url":"https://api.github.com/users/scofalik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scofalik/subscriptions","organizations_url":"https://api.github.com/users/scofalik/orgs","repos_url":"https://api.github.com/users/scofalik/repos","events_url":"https://api.github.com/users/scofalik/events{/privacy}","received_events_url":"https://api.github.com/users/scofalik/received_events","type":"User","site_admin":false},"assignees":[{"login":"scofalik","id":1502228,"avatar_url":"https://avatars.githubusercontent.com/u/1502228?v=3","gravatar_id":"","url":"https://api.github.com/users/scofalik","html_url":"https://github.com/scofalik","followers_url":"https://api.github.com/users/scofalik/followers","following_url":"https://api.github.com/users/scofalik/following{/other_user}","gists_url":"https://api.github.com/users/scofalik/gists{/gist_id}","starred_url":"https://api.github.com/users/scofalik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scofalik/subscriptions","organizations_url":"https://api.github.com/users/scofalik/orgs","repos_url":"https://api.github.com/users/scofalik/repos","events_url":"https://api.github.com/users/scofalik/events{/privacy}","received_events_url":"https://api.github.com/users/scofalik/received_events","type":"User","site_admin":false}],"milestone":null,"comments":2,"created_at":"2016-08-04T14:48:43Z","updated_at":"2016-08-08T10:09:54Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ckeditor/ckeditor5-ui/pulls/60","html_url":"https://github.com/ckeditor/ckeditor5-ui/pull/60","diff_url":"https://github.com/ckeditor/ckeditor5-ui/pull/60.diff","patch_url":"https://github.com/ckeditor/ckeditor5-ui/pull/60.patch"},"body":"…ils.ObservableMixin#pipe.\r\n\r\nCloses #35."},"comment":{"url":"https://api.github.com/repos/ckeditor/ckeditor5-ui/issues/comments/238195070","html_url":"https://github.com/ckeditor/ckeditor5-ui/pull/60#issuecomment-238195070","issue_url":"https://api.github.com/repos/ckeditor/ckeditor5-ui/issues/60","id":238195070,"user":{"login":"oleq","id":1099479,"avatar_url":"https://avatars.githubusercontent.com/u/1099479?v=3","gravatar_id":"","url":"https://api.github.com/users/oleq","html_url":"https://github.com/oleq","followers_url":"https://api.github.com/users/oleq/followers","following_url":"https://api.github.com/users/oleq/following{/other_user}","gists_url":"https://api.github.com/users/oleq/gists{/gist_id}","starred_url":"https://api.github.com/users/oleq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oleq/subscriptions","organizations_url":"https://api.github.com/users/oleq/orgs","repos_url":"https://api.github.com/users/oleq/repos","events_url":"https://api.github.com/users/oleq/events{/privacy}","received_events_url":"https://api.github.com/users/oleq/received_events","type":"User","site_admin":false},"created_at":"2016-08-08T10:09:54Z","updated_at":"2016-08-08T10:09:54Z","body":"> Having this doubts I am not sure whether you pushed all the changes you did.\r\n\r\nYes. I pushed all I had at that time. Still it was more like \"let's put it on review and see the feedback\" than \"it is merge–ready feature\". Nice catch, anyway.\r\n\r\n> Anyway, if we would like to use pipe method, it would be also nice to have some kind of unpipe method, to use here\r\n\r\nAs for piping in `ControllerCollection`, it is unlikely to happen that some collection will \"unpipe\". It would be an edge case or at least, there's no clear use–case ATM. It's more a one–way road when defining `constructor` of the `Controller` instance. Most of the definition lasts until the editor is destroyed. \r\n\r\n`EmitterMixin#unpipe` is another topic. I'll check this out.\r\n\r\n> Also, adding and event on add and remove each time event is piped seems like a lot of events but this is probably a pre-mature optimization case :P.\r\n\r\nYes. It's not the first time I (we) decided to go with this kind of implementation (easy but slow) in UI because, in fact, it may turn out that that no optimisation will ever be needed. UI is seldom processing data and reacting to abrupt changes so for the sake of keeping code shorter and much clearer I think it's OK to sacrifice the performance and memory. Besides, as long as it is JS, not the DOM, it's rather a minor difference anyway.\r\n\r\n> BTW you use ObservableMixin a lot in docs, where it seems like EmitterMixin is enough. Or do I not see something?\r\n\r\nAs you correctly pointed out in https://github.com/ckeditor/ckeditor5-utils/pull/56#issuecomment-237797863, the implementation will rather go to `EmitterMixin`. So all the things will move anyway."}}
{"actor":{"display_login":"oleq"}}