{"action":"created","comment":{"url":"https://api.github.com/repos/strongloop/strong-remoting/pulls/comments/51901200","id":51901200,"diff_hunk":"@@ -0,0 +1,66 @@\n+module.exports = Trie;\n+\n+function Trie() {\n+  this.methods = {};\n+}\n+\n+//insert new nodes to Trie\n+Trie.prototype.add = function(path, verb, handler) {\n+  var node = this;\n+  var parts = getPathParts(path);\n+  if (parts.length) {\n+    for (var i = 0; i < parts.length; i++) {\n+      if (!(parts[i] in node)) {\n+        node[parts[i]] = new Trie();\n+      }\n+      if (i + 1 === parts.length) {\n+        addVerbHandler(node[parts[i]], verb, handler);\n+      }\n+      node = node[parts[i]];\n+    }\n+  } else { // if we would ever encounter this situation?","path":"lib/trie.js","position":21,"original_position":21,"commit_id":"cd24be595b9cf0e782043389d3c3d413c2e83e1f","original_commit_id":"cd24be595b9cf0e782043389d3c3d413c2e83e1f","user":{"login":"gunjpan","id":14811089,"avatar_url":"https://avatars.githubusercontent.com/u/14811089?v=3","gravatar_id":"","url":"https://api.github.com/users/gunjpan","html_url":"https://github.com/gunjpan","followers_url":"https://api.github.com/users/gunjpan/followers","following_url":"https://api.github.com/users/gunjpan/following{/other_user}","gists_url":"https://api.github.com/users/gunjpan/gists{/gist_id}","starred_url":"https://api.github.com/users/gunjpan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gunjpan/subscriptions","organizations_url":"https://api.github.com/users/gunjpan/orgs","repos_url":"https://api.github.com/users/gunjpan/repos","events_url":"https://api.github.com/users/gunjpan/events{/privacy}","received_events_url":"https://api.github.com/users/gunjpan/received_events","type":"User","site_admin":false},"body":"@bajtos: yes. I purpose-fully put the comment for your views. \r\nThe thing is, every handler, in our `rest-adapter.js` is related to one restClass, thus it will always have model name in the `fullPath`. So, was not sure if we should handle this case. \r\nTODO: Will remove the comment and add a unit-test","created_at":"2016-02-04T16:52:29Z","updated_at":"2016-02-04T16:52:29Z","html_url":"https://github.com/strongloop/strong-remoting/pull/282#discussion_r51901200","pull_request_url":"https://api.github.com/repos/strongloop/strong-remoting/pulls/282","_links":{"self":{"href":"https://api.github.com/repos/strongloop/strong-remoting/pulls/comments/51901200"},"html":{"href":"https://github.com/strongloop/strong-remoting/pull/282#discussion_r51901200"},"pull_request":{"href":"https://api.github.com/repos/strongloop/strong-remoting/pulls/282"}}},"pull_request":{"url":"https://api.github.com/repos/strongloop/strong-remoting/pulls/282","id":58249193,"html_url":"https://github.com/strongloop/strong-remoting/pull/282","diff_url":"https://github.com/strongloop/strong-remoting/pull/282.diff","patch_url":"https://github.com/strongloop/strong-remoting/pull/282.patch","issue_url":"https://api.github.com/repos/strongloop/strong-remoting/issues/282","number":282,"state":"open","locked":false,"title":"Implement a faster REST router","user":{"login":"gunjpan","id":14811089,"avatar_url":"https://avatars.githubusercontent.com/u/14811089?v=3","gravatar_id":"","url":"https://api.github.com/users/gunjpan","html_url":"https://github.com/gunjpan","followers_url":"https://api.github.com/users/gunjpan/followers","following_url":"https://api.github.com/users/gunjpan/following{/other_user}","gists_url":"https://api.github.com/users/gunjpan/gists{/gist_id}","starred_url":"https://api.github.com/users/gunjpan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gunjpan/subscriptions","organizations_url":"https://api.github.com/users/gunjpan/orgs","repos_url":"https://api.github.com/users/gunjpan/repos","events_url":"https://api.github.com/users/gunjpan/events{/privacy}","received_events_url":"https://api.github.com/users/gunjpan/received_events","type":"User","site_admin":false},"body":"Faster  REST router implementation - iteration 1\r\nIncludes: \r\n- Handler method registration and invocation for simple REST paths i.e. `/api/[model]` & `/api/[model]/[method]`\r\n\r\nExcludes: \r\n- Handler method registration and invocation for REST paths with `:parameters` e.x. `/api/[model]/:id`\r\n- Handlers with more than three arguments for example, `handlerFn(err, req, res, next){..}`\r\n\r\nConnect to https://github.com/strongloop-internal/scrum-loopback/issues/730","created_at":"2016-02-04T07:11:57Z","updated_at":"2016-02-04T16:52:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c91a3a624290e44251485f44662a917827695abb","assignee":{"login":"gunjpan","id":14811089,"avatar_url":"https://avatars.githubusercontent.com/u/14811089?v=3","gravatar_id":"","url":"https://api.github.com/users/gunjpan","html_url":"https://github.com/gunjpan","followers_url":"https://api.github.com/users/gunjpan/followers","following_url":"https://api.github.com/users/gunjpan/following{/other_user}","gists_url":"https://api.github.com/users/gunjpan/gists{/gist_id}","starred_url":"https://api.github.com/users/gunjpan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gunjpan/subscriptions","organizations_url":"https://api.github.com/users/gunjpan/orgs","repos_url":"https://api.github.com/users/gunjpan/repos","events_url":"https://api.github.com/users/gunjpan/events{/privacy}","received_events_url":"https://api.github.com/users/gunjpan/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/strongloop/strong-remoting/pulls/282/commits","review_comments_url":"https://api.github.com/repos/strongloop/strong-remoting/pulls/282/comments","review_comment_url":"https://api.github.com/repos/strongloop/strong-remoting/pulls/comments{/number}","comments_url":"https://api.github.com/repos/strongloop/strong-remoting/issues/282/comments","statuses_url":"https://api.github.com/repos/strongloop/strong-remoting/statuses/cd24be595b9cf0e782043389d3c3d413c2e83e1f","head":{"label":"strongloop:feature/custom-router","ref":"feature/custom-router","sha":"cd24be595b9cf0e782043389d3c3d413c2e83e1f","user":{"login":"strongloop","id":3020012,"avatar_url":"https://avatars.githubusercontent.com/u/3020012?v=3","gravatar_id":"","url":"https://api.github.com/users/strongloop","html_url":"https://github.com/strongloop","followers_url":"https://api.github.com/users/strongloop/followers","following_url":"https://api.github.com/users/strongloop/following{/other_user}","gists_url":"https://api.github.com/users/strongloop/gists{/gist_id}","starred_url":"https://api.github.com/users/strongloop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strongloop/subscriptions","organizations_url":"https://api.github.com/users/strongloop/orgs","repos_url":"https://api.github.com/users/strongloop/repos","events_url":"https://api.github.com/users/strongloop/events{/privacy}","received_events_url":"https://api.github.com/users/strongloop/received_events","type":"Organization","site_admin":false},"repo":{"id":10045175,"name":"strong-remoting","full_name":"strongloop/strong-remoting","owner":{"login":"strongloop","id":3020012,"avatar_url":"https://avatars.githubusercontent.com/u/3020012?v=3","gravatar_id":"","url":"https://api.github.com/users/strongloop","html_url":"https://github.com/strongloop","followers_url":"https://api.github.com/users/strongloop/followers","following_url":"https://api.github.com/users/strongloop/following{/other_user}","gists_url":"https://api.github.com/users/strongloop/gists{/gist_id}","starred_url":"https://api.github.com/users/strongloop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strongloop/subscriptions","organizations_url":"https://api.github.com/users/strongloop/orgs","repos_url":"https://api.github.com/users/strongloop/repos","events_url":"https://api.github.com/users/strongloop/events{/privacy}","received_events_url":"https://api.github.com/users/strongloop/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/strongloop/strong-remoting","description":"Communicate between objects in servers, mobile apps, and other servers.","fork":false,"url":"https://api.github.com/repos/strongloop/strong-remoting","forks_url":"https://api.github.com/repos/strongloop/strong-remoting/forks","keys_url":"https://api.github.com/repos/strongloop/strong-remoting/keys{/key_id}","collaborators_url":"https://api.github.com/repos/strongloop/strong-remoting/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/strongloop/strong-remoting/teams","hooks_url":"https://api.github.com/repos/strongloop/strong-remoting/hooks","issue_events_url":"https://api.github.com/repos/strongloop/strong-remoting/issues/events{/number}","events_url":"https://api.github.com/repos/strongloop/strong-remoting/events","assignees_url":"https://api.github.com/repos/strongloop/strong-remoting/assignees{/user}","branches_url":"https://api.github.com/repos/strongloop/strong-remoting/branches{/branch}","tags_url":"https://api.github.com/repos/strongloop/strong-remoting/tags","blobs_url":"https://api.github.com/repos/strongloop/strong-remoting/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/strongloop/strong-remoting/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/strongloop/strong-remoting/git/refs{/sha}","trees_url":"https://api.github.com/repos/strongloop/strong-remoting/git/trees{/sha}","statuses_url":"https://api.github.com/repos/strongloop/strong-remoting/statuses/{sha}","languages_url":"https://api.github.com/repos/strongloop/strong-remoting/languages","stargazers_url":"https://api.github.com/repos/strongloop/strong-remoting/stargazers","contributors_url":"https://api.github.com/repos/strongloop/strong-remoting/contributors","subscribers_url":"https://api.github.com/repos/strongloop/strong-remoting/subscribers","subscription_url":"https://api.github.com/repos/strongloop/strong-remoting/subscription","commits_url":"https://api.github.com/repos/strongloop/strong-remoting/commits{/sha}","git_commits_url":"https://api.github.com/repos/strongloop/strong-remoting/git/commits{/sha}","comments_url":"https://api.github.com/repos/strongloop/strong-remoting/comments{/number}","issue_comment_url":"https://api.github.com/repos/strongloop/strong-remoting/issues/comments{/number}","contents_url":"https://api.github.com/repos/strongloop/strong-remoting/contents/{+path}","compare_url":"https://api.github.com/repos/strongloop/strong-remoting/compare/{base}...{head}","merges_url":"https://api.github.com/repos/strongloop/strong-remoting/merges","archive_url":"https://api.github.com/repos/strongloop/strong-remoting/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/strongloop/strong-remoting/downloads","issues_url":"https://api.github.com/repos/strongloop/strong-remoting/issues{/number}","pulls_url":"https://api.github.com/repos/strongloop/strong-remoting/pulls{/number}","milestones_url":"https://api.github.com/repos/strongloop/strong-remoting/milestones{/number}","notifications_url":"https://api.github.com/repos/strongloop/strong-remoting/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/strongloop/strong-remoting/labels{/name}","releases_url":"https://api.github.com/repos/strongloop/strong-remoting/releases{/id}","deployments_url":"https://api.github.com/repos/strongloop/strong-remoting/deployments","created_at":"2013-05-14T01:53:04Z","updated_at":"2016-01-27T11:02:45Z","pushed_at":"2016-02-04T08:14:57Z","git_url":"git://github.com/strongloop/strong-remoting.git","ssh_url":"git@github.com:strongloop/strong-remoting.git","clone_url":"https://github.com/strongloop/strong-remoting.git","svn_url":"https://github.com/strongloop/strong-remoting","homepage":"www.strongloop.com","size":1045,"stargazers_count":58,"watchers_count":58,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":48,"mirror_url":null,"open_issues_count":41,"forks":48,"open_issues":41,"watchers":58,"default_branch":"master"}},"base":{"label":"strongloop:master","ref":"master","sha":"192ee9b74c150f7ec5a02e9b027187638b0eba2e","user":{"login":"strongloop","id":3020012,"avatar_url":"https://avatars.githubusercontent.com/u/3020012?v=3","gravatar_id":"","url":"https://api.github.com/users/strongloop","html_url":"https://github.com/strongloop","followers_url":"https://api.github.com/users/strongloop/followers","following_url":"https://api.github.com/users/strongloop/following{/other_user}","gists_url":"https://api.github.com/users/strongloop/gists{/gist_id}","starred_url":"https://api.github.com/users/strongloop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strongloop/subscriptions","organizations_url":"https://api.github.com/users/strongloop/orgs","repos_url":"https://api.github.com/users/strongloop/repos","events_url":"https://api.github.com/users/strongloop/events{/privacy}","received_events_url":"https://api.github.com/users/strongloop/received_events","type":"Organization","site_admin":false},"repo":{"id":10045175,"name":"strong-remoting","full_name":"strongloop/strong-remoting","owner":{"login":"strongloop","id":3020012,"avatar_url":"https://avatars.githubusercontent.com/u/3020012?v=3","gravatar_id":"","url":"https://api.github.com/users/strongloop","html_url":"https://github.com/strongloop","followers_url":"https://api.github.com/users/strongloop/followers","following_url":"https://api.github.com/users/strongloop/following{/other_user}","gists_url":"https://api.github.com/users/strongloop/gists{/gist_id}","starred_url":"https://api.github.com/users/strongloop/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/strongloop/subscriptions","organizations_url":"https://api.github.com/users/strongloop/orgs","repos_url":"https://api.github.com/users/strongloop/repos","events_url":"https://api.github.com/users/strongloop/events{/privacy}","received_events_url":"https://api.github.com/users/strongloop/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/strongloop/strong-remoting","description":"Communicate between objects in servers, mobile apps, and other servers.","fork":false,"url":"https://api.github.com/repos/strongloop/strong-remoting","forks_url":"https://api.github.com/repos/strongloop/strong-remoting/forks","keys_url":"https://api.github.com/repos/strongloop/strong-remoting/keys{/key_id}","collaborators_url":"https://api.github.com/repos/strongloop/strong-remoting/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/strongloop/strong-remoting/teams","hooks_url":"https://api.github.com/repos/strongloop/strong-remoting/hooks","issue_events_url":"https://api.github.com/repos/strongloop/strong-remoting/issues/events{/number}","events_url":"https://api.github.com/repos/strongloop/strong-remoting/events","assignees_url":"https://api.github.com/repos/strongloop/strong-remoting/assignees{/user}","branches_url":"https://api.github.com/repos/strongloop/strong-remoting/branches{/branch}","tags_url":"https://api.github.com/repos/strongloop/strong-remoting/tags","blobs_url":"https://api.github.com/repos/strongloop/strong-remoting/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/strongloop/strong-remoting/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/strongloop/strong-remoting/git/refs{/sha}","trees_url":"https://api.github.com/repos/strongloop/strong-remoting/git/trees{/sha}","statuses_url":"https://api.github.com/repos/strongloop/strong-remoting/statuses/{sha}","languages_url":"https://api.github.com/repos/strongloop/strong-remoting/languages","stargazers_url":"https://api.github.com/repos/strongloop/strong-remoting/stargazers","contributors_url":"https://api.github.com/repos/strongloop/strong-remoting/contributors","subscribers_url":"https://api.github.com/repos/strongloop/strong-remoting/subscribers","subscription_url":"https://api.github.com/repos/strongloop/strong-remoting/subscription","commits_url":"https://api.github.com/repos/strongloop/strong-remoting/commits{/sha}","git_commits_url":"https://api.github.com/repos/strongloop/strong-remoting/git/commits{/sha}","comments_url":"https://api.github.com/repos/strongloop/strong-remoting/comments{/number}","issue_comment_url":"https://api.github.com/repos/strongloop/strong-remoting/issues/comments{/number}","contents_url":"https://api.github.com/repos/strongloop/strong-remoting/contents/{+path}","compare_url":"https://api.github.com/repos/strongloop/strong-remoting/compare/{base}...{head}","merges_url":"https://api.github.com/repos/strongloop/strong-remoting/merges","archive_url":"https://api.github.com/repos/strongloop/strong-remoting/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/strongloop/strong-remoting/downloads","issues_url":"https://api.github.com/repos/strongloop/strong-remoting/issues{/number}","pulls_url":"https://api.github.com/repos/strongloop/strong-remoting/pulls{/number}","milestones_url":"https://api.github.com/repos/strongloop/strong-remoting/milestones{/number}","notifications_url":"https://api.github.com/repos/strongloop/strong-remoting/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/strongloop/strong-remoting/labels{/name}","releases_url":"https://api.github.com/repos/strongloop/strong-remoting/releases{/id}","deployments_url":"https://api.github.com/repos/strongloop/strong-remoting/deployments","created_at":"2013-05-14T01:53:04Z","updated_at":"2016-01-27T11:02:45Z","pushed_at":"2016-02-04T08:14:57Z","git_url":"git://github.com/strongloop/strong-remoting.git","ssh_url":"git@github.com:strongloop/strong-remoting.git","clone_url":"https://github.com/strongloop/strong-remoting.git","svn_url":"https://github.com/strongloop/strong-remoting","homepage":"www.strongloop.com","size":1045,"stargazers_count":58,"watchers_count":58,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":48,"mirror_url":null,"open_issues_count":41,"forks":48,"open_issues":41,"watchers":58,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/strongloop/strong-remoting/pulls/282"},"html":{"href":"https://github.com/strongloop/strong-remoting/pull/282"},"issue":{"href":"https://api.github.com/repos/strongloop/strong-remoting/issues/282"},"comments":{"href":"https://api.github.com/repos/strongloop/strong-remoting/issues/282/comments"},"review_comments":{"href":"https://api.github.com/repos/strongloop/strong-remoting/pulls/282/comments"},"review_comment":{"href":"https://api.github.com/repos/strongloop/strong-remoting/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/strongloop/strong-remoting/pulls/282/commits"},"statuses":{"href":"https://api.github.com/repos/strongloop/strong-remoting/statuses/cd24be595b9cf0e782043389d3c3d413c2e83e1f"}}}}