{"action":"created","comment":{"url":"https://api.github.com/repos/GPII/gpii-express-user/pulls/comments/51814763","id":51814763,"diff_hunk":"@@ -0,0 +1,160 @@\n+// A rewritten version of `kettle.dataSource.CouchDB.read` that allows rewriting of the response using the\n+// transformation rules found in `options.rules.read`.  We cannot directly extend the existing couch grade in Kettle\n+// because it has a non-namespaced listener for `onRead`, which we cannot replace. The `gradeNames` and `listener` block","path":"src/js/server/lib/datasource.js","position":3,"original_position":3,"commit_id":"6ac0253f333103a51c145c3cb48780be14a53349","original_commit_id":"bf970c3fdd3910eab62458f89462b7b527022815","user":{"login":"amb26","id":561418,"avatar_url":"https://avatars.githubusercontent.com/u/561418?v=3","gravatar_id":"","url":"https://api.github.com/users/amb26","html_url":"https://github.com/amb26","followers_url":"https://api.github.com/users/amb26/followers","following_url":"https://api.github.com/users/amb26/following{/other_user}","gists_url":"https://api.github.com/users/amb26/gists{/gist_id}","starred_url":"https://api.github.com/users/amb26/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amb26/subscriptions","organizations_url":"https://api.github.com/users/amb26/orgs","repos_url":"https://api.github.com/users/amb26/repos","events_url":"https://api.github.com/users/amb26/events{/privacy}","received_events_url":"https://api.github.com/users/amb26/received_events","type":"User","site_admin":false},"body":"A listener to an event will displace another one on the same event with the same namespace. If you write a definition just like this one in a derived grade or in an options distribution, it will override this one. This particular mechanism isn't new, it has been implemented like this from the beginnings of the framework - although I remember that you and I established in a chat last year that it was, in the end, based on a \"creative misunderstanding\" of the jQuery system which it was believed to be modelled on. It turns out that jQuery namespaces don't behave like this at all - they are used at the \"firing\" end to select just a subset of the available listeners for a particular firing of an event. All of our listeners that are registered always fire all the time.","created_at":"2016-02-04T00:57:58Z","updated_at":"2016-02-04T00:57:58Z","html_url":"https://github.com/GPII/gpii-express-user/pull/1#discussion_r51814763","pull_request_url":"https://api.github.com/repos/GPII/gpii-express-user/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/GPII/gpii-express-user/pulls/comments/51814763"},"html":{"href":"https://github.com/GPII/gpii-express-user/pull/1#discussion_r51814763"},"pull_request":{"href":"https://api.github.com/repos/GPII/gpii-express-user/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/GPII/gpii-express-user/pulls/1","id":49271688,"html_url":"https://github.com/GPII/gpii-express-user/pull/1","diff_url":"https://github.com/GPII/gpii-express-user/pull/1.diff","patch_url":"https://github.com/GPII/gpii-express-user/pull/1.patch","issue_url":"https://api.github.com/repos/GPII/gpii-express-user/issues/1","number":1,"state":"open","locked":false,"title":"GPII-1280: Initial implementation of user management...","user":{"login":"the-t-in-rtf","id":5765222,"avatar_url":"https://avatars.githubusercontent.com/u/5765222?v=3","gravatar_id":"","url":"https://api.github.com/users/the-t-in-rtf","html_url":"https://github.com/the-t-in-rtf","followers_url":"https://api.github.com/users/the-t-in-rtf/followers","following_url":"https://api.github.com/users/the-t-in-rtf/following{/other_user}","gists_url":"https://api.github.com/users/the-t-in-rtf/gists{/gist_id}","starred_url":"https://api.github.com/users/the-t-in-rtf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/the-t-in-rtf/subscriptions","organizations_url":"https://api.github.com/users/the-t-in-rtf/orgs","repos_url":"https://api.github.com/users/the-t-in-rtf/repos","events_url":"https://api.github.com/users/the-t-in-rtf/events{/privacy}","received_events_url":"https://api.github.com/users/the-t-in-rtf/received_events","type":"User","site_admin":false},"body":"See [GPII-1280](https://issues.gpii.net/browse/GPII-1280) for details.","created_at":"2015-10-30T13:55:24Z","updated_at":"2016-02-04T00:57:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8be3d8921342ffea8693b3d0cd397696516bfb3d","assignee":{"login":"amb26","id":561418,"avatar_url":"https://avatars.githubusercontent.com/u/561418?v=3","gravatar_id":"","url":"https://api.github.com/users/amb26","html_url":"https://github.com/amb26","followers_url":"https://api.github.com/users/amb26/followers","following_url":"https://api.github.com/users/amb26/following{/other_user}","gists_url":"https://api.github.com/users/amb26/gists{/gist_id}","starred_url":"https://api.github.com/users/amb26/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amb26/subscriptions","organizations_url":"https://api.github.com/users/amb26/orgs","repos_url":"https://api.github.com/users/amb26/repos","events_url":"https://api.github.com/users/amb26/events{/privacy}","received_events_url":"https://api.github.com/users/amb26/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/GPII/gpii-express-user/pulls/1/commits","review_comments_url":"https://api.github.com/repos/GPII/gpii-express-user/pulls/1/comments","review_comment_url":"https://api.github.com/repos/GPII/gpii-express-user/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GPII/gpii-express-user/issues/1/comments","statuses_url":"https://api.github.com/repos/GPII/gpii-express-user/statuses/6ac0253f333103a51c145c3cb48780be14a53349","head":{"label":"the-t-in-rtf:GPII-1280","ref":"GPII-1280","sha":"6ac0253f333103a51c145c3cb48780be14a53349","user":{"login":"the-t-in-rtf","id":5765222,"avatar_url":"https://avatars.githubusercontent.com/u/5765222?v=3","gravatar_id":"","url":"https://api.github.com/users/the-t-in-rtf","html_url":"https://github.com/the-t-in-rtf","followers_url":"https://api.github.com/users/the-t-in-rtf/followers","following_url":"https://api.github.com/users/the-t-in-rtf/following{/other_user}","gists_url":"https://api.github.com/users/the-t-in-rtf/gists{/gist_id}","starred_url":"https://api.github.com/users/the-t-in-rtf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/the-t-in-rtf/subscriptions","organizations_url":"https://api.github.com/users/the-t-in-rtf/orgs","repos_url":"https://api.github.com/users/the-t-in-rtf/repos","events_url":"https://api.github.com/users/the-t-in-rtf/events{/privacy}","received_events_url":"https://api.github.com/users/the-t-in-rtf/received_events","type":"User","site_admin":false},"repo":{"id":45253453,"name":"gpii-express-user","full_name":"the-t-in-rtf/gpii-express-user","owner":{"login":"the-t-in-rtf","id":5765222,"avatar_url":"https://avatars.githubusercontent.com/u/5765222?v=3","gravatar_id":"","url":"https://api.github.com/users/the-t-in-rtf","html_url":"https://github.com/the-t-in-rtf","followers_url":"https://api.github.com/users/the-t-in-rtf/followers","following_url":"https://api.github.com/users/the-t-in-rtf/following{/other_user}","gists_url":"https://api.github.com/users/the-t-in-rtf/gists{/gist_id}","starred_url":"https://api.github.com/users/the-t-in-rtf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/the-t-in-rtf/subscriptions","organizations_url":"https://api.github.com/users/the-t-in-rtf/orgs","repos_url":"https://api.github.com/users/the-t-in-rtf/repos","events_url":"https://api.github.com/users/the-t-in-rtf/events{/privacy}","received_events_url":"https://api.github.com/users/the-t-in-rtf/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/the-t-in-rtf/gpii-express-user","description":"","fork":true,"url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user","forks_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/forks","keys_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/keys{/key_id}","collaborators_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/teams","hooks_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/hooks","issue_events_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/issues/events{/number}","events_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/events","assignees_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/assignees{/user}","branches_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/branches{/branch}","tags_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/tags","blobs_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/git/refs{/sha}","trees_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/git/trees{/sha}","statuses_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/statuses/{sha}","languages_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/languages","stargazers_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/stargazers","contributors_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/contributors","subscribers_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/subscribers","subscription_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/subscription","commits_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/commits{/sha}","git_commits_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/git/commits{/sha}","comments_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/comments{/number}","issue_comment_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/issues/comments{/number}","contents_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/contents/{+path}","compare_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/compare/{base}...{head}","merges_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/merges","archive_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/downloads","issues_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/issues{/number}","pulls_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/pulls{/number}","milestones_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/milestones{/number}","notifications_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/labels{/name}","releases_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/releases{/id}","deployments_url":"https://api.github.com/repos/the-t-in-rtf/gpii-express-user/deployments","created_at":"2015-10-30T13:46:42Z","updated_at":"2015-10-30T10:47:19Z","pushed_at":"2016-01-27T15:42:46Z","git_url":"git://github.com/the-t-in-rtf/gpii-express-user.git","ssh_url":"git@github.com:the-t-in-rtf/gpii-express-user.git","clone_url":"https://github.com/the-t-in-rtf/gpii-express-user.git","svn_url":"https://github.com/the-t-in-rtf/gpii-express-user","homepage":null,"size":184,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GPII:master","ref":"master","sha":"c431e0cc9a3043ab4926dfe5db58ad8fc829ce60","user":{"login":"GPII","id":1343050,"avatar_url":"https://avatars.githubusercontent.com/u/1343050?v=3","gravatar_id":"","url":"https://api.github.com/users/GPII","html_url":"https://github.com/GPII","followers_url":"https://api.github.com/users/GPII/followers","following_url":"https://api.github.com/users/GPII/following{/other_user}","gists_url":"https://api.github.com/users/GPII/gists{/gist_id}","starred_url":"https://api.github.com/users/GPII/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GPII/subscriptions","organizations_url":"https://api.github.com/users/GPII/orgs","repos_url":"https://api.github.com/users/GPII/repos","events_url":"https://api.github.com/users/GPII/events{/privacy}","received_events_url":"https://api.github.com/users/GPII/received_events","type":"Organization","site_admin":false},"repo":{"id":45245430,"name":"gpii-express-user","full_name":"GPII/gpii-express-user","owner":{"login":"GPII","id":1343050,"avatar_url":"https://avatars.githubusercontent.com/u/1343050?v=3","gravatar_id":"","url":"https://api.github.com/users/GPII","html_url":"https://github.com/GPII","followers_url":"https://api.github.com/users/GPII/followers","following_url":"https://api.github.com/users/GPII/following{/other_user}","gists_url":"https://api.github.com/users/GPII/gists{/gist_id}","starred_url":"https://api.github.com/users/GPII/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GPII/subscriptions","organizations_url":"https://api.github.com/users/GPII/orgs","repos_url":"https://api.github.com/users/GPII/repos","events_url":"https://api.github.com/users/GPII/events{/privacy}","received_events_url":"https://api.github.com/users/GPII/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GPII/gpii-express-user","description":"","fork":false,"url":"https://api.github.com/repos/GPII/gpii-express-user","forks_url":"https://api.github.com/repos/GPII/gpii-express-user/forks","keys_url":"https://api.github.com/repos/GPII/gpii-express-user/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GPII/gpii-express-user/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GPII/gpii-express-user/teams","hooks_url":"https://api.github.com/repos/GPII/gpii-express-user/hooks","issue_events_url":"https://api.github.com/repos/GPII/gpii-express-user/issues/events{/number}","events_url":"https://api.github.com/repos/GPII/gpii-express-user/events","assignees_url":"https://api.github.com/repos/GPII/gpii-express-user/assignees{/user}","branches_url":"https://api.github.com/repos/GPII/gpii-express-user/branches{/branch}","tags_url":"https://api.github.com/repos/GPII/gpii-express-user/tags","blobs_url":"https://api.github.com/repos/GPII/gpii-express-user/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GPII/gpii-express-user/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GPII/gpii-express-user/git/refs{/sha}","trees_url":"https://api.github.com/repos/GPII/gpii-express-user/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GPII/gpii-express-user/statuses/{sha}","languages_url":"https://api.github.com/repos/GPII/gpii-express-user/languages","stargazers_url":"https://api.github.com/repos/GPII/gpii-express-user/stargazers","contributors_url":"https://api.github.com/repos/GPII/gpii-express-user/contributors","subscribers_url":"https://api.github.com/repos/GPII/gpii-express-user/subscribers","subscription_url":"https://api.github.com/repos/GPII/gpii-express-user/subscription","commits_url":"https://api.github.com/repos/GPII/gpii-express-user/commits{/sha}","git_commits_url":"https://api.github.com/repos/GPII/gpii-express-user/git/commits{/sha}","comments_url":"https://api.github.com/repos/GPII/gpii-express-user/comments{/number}","issue_comment_url":"https://api.github.com/repos/GPII/gpii-express-user/issues/comments{/number}","contents_url":"https://api.github.com/repos/GPII/gpii-express-user/contents/{+path}","compare_url":"https://api.github.com/repos/GPII/gpii-express-user/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GPII/gpii-express-user/merges","archive_url":"https://api.github.com/repos/GPII/gpii-express-user/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GPII/gpii-express-user/downloads","issues_url":"https://api.github.com/repos/GPII/gpii-express-user/issues{/number}","pulls_url":"https://api.github.com/repos/GPII/gpii-express-user/pulls{/number}","milestones_url":"https://api.github.com/repos/GPII/gpii-express-user/milestones{/number}","notifications_url":"https://api.github.com/repos/GPII/gpii-express-user/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GPII/gpii-express-user/labels{/name}","releases_url":"https://api.github.com/repos/GPII/gpii-express-user/releases{/id}","deployments_url":"https://api.github.com/repos/GPII/gpii-express-user/deployments","created_at":"2015-10-30T10:47:19Z","updated_at":"2015-10-30T10:47:19Z","pushed_at":"2016-01-27T15:42:46Z","git_url":"git://github.com/GPII/gpii-express-user.git","ssh_url":"git@github.com:GPII/gpii-express-user.git","clone_url":"https://github.com/GPII/gpii-express-user.git","svn_url":"https://github.com/GPII/gpii-express-user","homepage":null,"size":156,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GPII/gpii-express-user/pulls/1"},"html":{"href":"https://github.com/GPII/gpii-express-user/pull/1"},"issue":{"href":"https://api.github.com/repos/GPII/gpii-express-user/issues/1"},"comments":{"href":"https://api.github.com/repos/GPII/gpii-express-user/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/GPII/gpii-express-user/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/GPII/gpii-express-user/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GPII/gpii-express-user/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/GPII/gpii-express-user/statuses/6ac0253f333103a51c145c3cb48780be14a53349"}}}}