{"action":"created","comment":{"url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/comments/40495886","id":40495886,"diff_hunk":"@@ -45,6 +45,8 @@\n     \"jade\": \"~1.11.0\",\n     \"js2xmlparser\": \"~0.1.2\",\n     \"lodash\": \"~2.4.1\",\n+    \"lodash.camelcase\": \"^3.0.1\",","path":"package.json","position":4,"original_position":4,"commit_id":"cc6117fd173432807e0f472d11f2a2a06e996dd2","original_commit_id":"cc6117fd173432807e0f472d11f2a2a06e996dd2","user":{"login":"crookedneighbor","id":2916945,"avatar_url":"https://avatars.githubusercontent.com/u/2916945?v=3","gravatar_id":"","url":"https://api.github.com/users/crookedneighbor","html_url":"https://github.com/crookedneighbor","followers_url":"https://api.github.com/users/crookedneighbor/followers","following_url":"https://api.github.com/users/crookedneighbor/following{/other_user}","gists_url":"https://api.github.com/users/crookedneighbor/gists{/gist_id}","starred_url":"https://api.github.com/users/crookedneighbor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crookedneighbor/subscriptions","organizations_url":"https://api.github.com/users/crookedneighbor/orgs","repos_url":"https://api.github.com/users/crookedneighbor/repos","events_url":"https://api.github.com/users/crookedneighbor/events{/privacy}","received_events_url":"https://api.github.com/users/crookedneighbor/received_events","type":"User","site_admin":false},"body":"These two modules should be removed after we upgrade lodash to v3","created_at":"2015-09-26T17:23:23Z","updated_at":"2015-09-26T17:23:23Z","html_url":"https://github.com/HabitRPG/habitrpg/pull/5976#discussion_r40495886","pull_request_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/5976","_links":{"self":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/comments/40495886"},"html":{"href":"https://github.com/HabitRPG/habitrpg/pull/5976#discussion_r40495886"},"pull_request":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/5976"}}},"pull_request":{"url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/5976","id":46040011,"html_url":"https://github.com/HabitRPG/habitrpg/pull/5976","diff_url":"https://github.com/HabitRPG/habitrpg/pull/5976.diff","patch_url":"https://github.com/HabitRPG/habitrpg/pull/5976.patch","issue_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues/5976","number":5976,"state":"open","locked":false,"title":"[WIP] Refactor content","user":{"login":"crookedneighbor","id":2916945,"avatar_url":"https://avatars.githubusercontent.com/u/2916945?v=3","gravatar_id":"","url":"https://api.github.com/users/crookedneighbor","html_url":"https://github.com/crookedneighbor","followers_url":"https://api.github.com/users/crookedneighbor/followers","following_url":"https://api.github.com/users/crookedneighbor/following{/other_user}","gists_url":"https://api.github.com/users/crookedneighbor/gists{/gist_id}","starred_url":"https://api.github.com/users/crookedneighbor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crookedneighbor/subscriptions","organizations_url":"https://api.github.com/users/crookedneighbor/orgs","repos_url":"https://api.github.com/users/crookedneighbor/repos","events_url":"https://api.github.com/users/crookedneighbor/events{/privacy}","received_events_url":"https://api.github.com/users/crookedneighbor/received_events","type":"User","site_admin":false},"body":"# :warning:  WIP :warning: \r\n\r\n## Problem\r\n\r\nThe Content file is too large and unwieldy and we're moving away from coffeescript.\r\n\r\n## Solution\r\n\r\n* Splits content files into separate modules instead of one gigantic file\r\n* Uses ES2015. Files are located in `/common/script/src/content` and get compiled to `/common/dist/script/content/`. The idea will be to move them back to `common/script/content` once all of the common scripts are converted form coffeescript to es6\r\n* \r\n\r\n## Todos\r\n\r\n- [ ] Add comment blocks at the top of the file for each section explaining the data type for each kind of content (explain the magic that the helpers are doing).\r\n- [ ] Decide if the warrior gear set is the correct way to organize the data and if so, do the same for the rest of it (can be done after merging)\r\n- [ ]  Add some testing around each content file to make sure their attributes that resolve into text don't turn into \"Error processing string\" or \"String not found\"\r\n- [ ] Extract more looping logic into helpers\r\n\r\n## Misc Notes: \r\n\r\n* In order to support better localization I added mountText for each mount. Since the word for the pet versus mount could be different in other languages.","created_at":"2015-09-25T18:00:13Z","updated_at":"2015-09-26T17:23:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"34790627bb99e1edfbfb118fc04d38340fec0c3a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/5976/commits","review_comments_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/5976/comments","review_comment_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/comments{/number}","comments_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues/5976/comments","statuses_url":"https://api.github.com/repos/HabitRPG/habitrpg/statuses/cc6117fd173432807e0f472d11f2a2a06e996dd2","head":{"label":"crookedneighbor:refactor-content","ref":"refactor-content","sha":"cc6117fd173432807e0f472d11f2a2a06e996dd2","user":{"login":"crookedneighbor","id":2916945,"avatar_url":"https://avatars.githubusercontent.com/u/2916945?v=3","gravatar_id":"","url":"https://api.github.com/users/crookedneighbor","html_url":"https://github.com/crookedneighbor","followers_url":"https://api.github.com/users/crookedneighbor/followers","following_url":"https://api.github.com/users/crookedneighbor/following{/other_user}","gists_url":"https://api.github.com/users/crookedneighbor/gists{/gist_id}","starred_url":"https://api.github.com/users/crookedneighbor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crookedneighbor/subscriptions","organizations_url":"https://api.github.com/users/crookedneighbor/orgs","repos_url":"https://api.github.com/users/crookedneighbor/repos","events_url":"https://api.github.com/users/crookedneighbor/events{/privacy}","received_events_url":"https://api.github.com/users/crookedneighbor/received_events","type":"User","site_admin":false},"repo":{"id":21923397,"name":"habitrpg","full_name":"crookedneighbor/habitrpg","owner":{"login":"crookedneighbor","id":2916945,"avatar_url":"https://avatars.githubusercontent.com/u/2916945?v=3","gravatar_id":"","url":"https://api.github.com/users/crookedneighbor","html_url":"https://github.com/crookedneighbor","followers_url":"https://api.github.com/users/crookedneighbor/followers","following_url":"https://api.github.com/users/crookedneighbor/following{/other_user}","gists_url":"https://api.github.com/users/crookedneighbor/gists{/gist_id}","starred_url":"https://api.github.com/users/crookedneighbor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crookedneighbor/subscriptions","organizations_url":"https://api.github.com/users/crookedneighbor/orgs","repos_url":"https://api.github.com/users/crookedneighbor/repos","events_url":"https://api.github.com/users/crookedneighbor/events{/privacy}","received_events_url":"https://api.github.com/users/crookedneighbor/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/crookedneighbor/habitrpg","description":"A habit tracker app which treats your goals like a Role Playing Game.","fork":true,"url":"https://api.github.com/repos/crookedneighbor/habitrpg","forks_url":"https://api.github.com/repos/crookedneighbor/habitrpg/forks","keys_url":"https://api.github.com/repos/crookedneighbor/habitrpg/keys{/key_id}","collaborators_url":"https://api.github.com/repos/crookedneighbor/habitrpg/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/crookedneighbor/habitrpg/teams","hooks_url":"https://api.github.com/repos/crookedneighbor/habitrpg/hooks","issue_events_url":"https://api.github.com/repos/crookedneighbor/habitrpg/issues/events{/number}","events_url":"https://api.github.com/repos/crookedneighbor/habitrpg/events","assignees_url":"https://api.github.com/repos/crookedneighbor/habitrpg/assignees{/user}","branches_url":"https://api.github.com/repos/crookedneighbor/habitrpg/branches{/branch}","tags_url":"https://api.github.com/repos/crookedneighbor/habitrpg/tags","blobs_url":"https://api.github.com/repos/crookedneighbor/habitrpg/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/crookedneighbor/habitrpg/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/crookedneighbor/habitrpg/git/refs{/sha}","trees_url":"https://api.github.com/repos/crookedneighbor/habitrpg/git/trees{/sha}","statuses_url":"https://api.github.com/repos/crookedneighbor/habitrpg/statuses/{sha}","languages_url":"https://api.github.com/repos/crookedneighbor/habitrpg/languages","stargazers_url":"https://api.github.com/repos/crookedneighbor/habitrpg/stargazers","contributors_url":"https://api.github.com/repos/crookedneighbor/habitrpg/contributors","subscribers_url":"https://api.github.com/repos/crookedneighbor/habitrpg/subscribers","subscription_url":"https://api.github.com/repos/crookedneighbor/habitrpg/subscription","commits_url":"https://api.github.com/repos/crookedneighbor/habitrpg/commits{/sha}","git_commits_url":"https://api.github.com/repos/crookedneighbor/habitrpg/git/commits{/sha}","comments_url":"https://api.github.com/repos/crookedneighbor/habitrpg/comments{/number}","issue_comment_url":"https://api.github.com/repos/crookedneighbor/habitrpg/issues/comments{/number}","contents_url":"https://api.github.com/repos/crookedneighbor/habitrpg/contents/{+path}","compare_url":"https://api.github.com/repos/crookedneighbor/habitrpg/compare/{base}...{head}","merges_url":"https://api.github.com/repos/crookedneighbor/habitrpg/merges","archive_url":"https://api.github.com/repos/crookedneighbor/habitrpg/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/crookedneighbor/habitrpg/downloads","issues_url":"https://api.github.com/repos/crookedneighbor/habitrpg/issues{/number}","pulls_url":"https://api.github.com/repos/crookedneighbor/habitrpg/pulls{/number}","milestones_url":"https://api.github.com/repos/crookedneighbor/habitrpg/milestones{/number}","notifications_url":"https://api.github.com/repos/crookedneighbor/habitrpg/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/crookedneighbor/habitrpg/labels{/name}","releases_url":"https://api.github.com/repos/crookedneighbor/habitrpg/releases{/id}","created_at":"2014-07-17T00:47:35Z","updated_at":"2015-07-25T03:10:45Z","pushed_at":"2015-09-25T22:54:31Z","git_url":"git://github.com/crookedneighbor/habitrpg.git","ssh_url":"git@github.com:crookedneighbor/habitrpg.git","clone_url":"https://github.com/crookedneighbor/habitrpg.git","svn_url":"https://github.com/crookedneighbor/habitrpg","homepage":"habitrpg.com","size":264408,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","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":"develop"}},"base":{"label":"HabitRPG:develop","ref":"develop","sha":"a0f84bcf48f3163c38c64eebdd9f32360bf7195c","user":{"login":"HabitRPG","id":3834775,"avatar_url":"https://avatars.githubusercontent.com/u/3834775?v=3","gravatar_id":"","url":"https://api.github.com/users/HabitRPG","html_url":"https://github.com/HabitRPG","followers_url":"https://api.github.com/users/HabitRPG/followers","following_url":"https://api.github.com/users/HabitRPG/following{/other_user}","gists_url":"https://api.github.com/users/HabitRPG/gists{/gist_id}","starred_url":"https://api.github.com/users/HabitRPG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HabitRPG/subscriptions","organizations_url":"https://api.github.com/users/HabitRPG/orgs","repos_url":"https://api.github.com/users/HabitRPG/repos","events_url":"https://api.github.com/users/HabitRPG/events{/privacy}","received_events_url":"https://api.github.com/users/HabitRPG/received_events","type":"Organization","site_admin":false},"repo":{"id":4578898,"name":"habitrpg","full_name":"HabitRPG/habitrpg","owner":{"login":"HabitRPG","id":3834775,"avatar_url":"https://avatars.githubusercontent.com/u/3834775?v=3","gravatar_id":"","url":"https://api.github.com/users/HabitRPG","html_url":"https://github.com/HabitRPG","followers_url":"https://api.github.com/users/HabitRPG/followers","following_url":"https://api.github.com/users/HabitRPG/following{/other_user}","gists_url":"https://api.github.com/users/HabitRPG/gists{/gist_id}","starred_url":"https://api.github.com/users/HabitRPG/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HabitRPG/subscriptions","organizations_url":"https://api.github.com/users/HabitRPG/orgs","repos_url":"https://api.github.com/users/HabitRPG/repos","events_url":"https://api.github.com/users/HabitRPG/events{/privacy}","received_events_url":"https://api.github.com/users/HabitRPG/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/HabitRPG/habitrpg","description":"A habit tracker app which treats your goals like a Role Playing Game.","fork":false,"url":"https://api.github.com/repos/HabitRPG/habitrpg","forks_url":"https://api.github.com/repos/HabitRPG/habitrpg/forks","keys_url":"https://api.github.com/repos/HabitRPG/habitrpg/keys{/key_id}","collaborators_url":"https://api.github.com/repos/HabitRPG/habitrpg/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/HabitRPG/habitrpg/teams","hooks_url":"https://api.github.com/repos/HabitRPG/habitrpg/hooks","issue_events_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues/events{/number}","events_url":"https://api.github.com/repos/HabitRPG/habitrpg/events","assignees_url":"https://api.github.com/repos/HabitRPG/habitrpg/assignees{/user}","branches_url":"https://api.github.com/repos/HabitRPG/habitrpg/branches{/branch}","tags_url":"https://api.github.com/repos/HabitRPG/habitrpg/tags","blobs_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/refs{/sha}","trees_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/trees{/sha}","statuses_url":"https://api.github.com/repos/HabitRPG/habitrpg/statuses/{sha}","languages_url":"https://api.github.com/repos/HabitRPG/habitrpg/languages","stargazers_url":"https://api.github.com/repos/HabitRPG/habitrpg/stargazers","contributors_url":"https://api.github.com/repos/HabitRPG/habitrpg/contributors","subscribers_url":"https://api.github.com/repos/HabitRPG/habitrpg/subscribers","subscription_url":"https://api.github.com/repos/HabitRPG/habitrpg/subscription","commits_url":"https://api.github.com/repos/HabitRPG/habitrpg/commits{/sha}","git_commits_url":"https://api.github.com/repos/HabitRPG/habitrpg/git/commits{/sha}","comments_url":"https://api.github.com/repos/HabitRPG/habitrpg/comments{/number}","issue_comment_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues/comments{/number}","contents_url":"https://api.github.com/repos/HabitRPG/habitrpg/contents/{+path}","compare_url":"https://api.github.com/repos/HabitRPG/habitrpg/compare/{base}...{head}","merges_url":"https://api.github.com/repos/HabitRPG/habitrpg/merges","archive_url":"https://api.github.com/repos/HabitRPG/habitrpg/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/HabitRPG/habitrpg/downloads","issues_url":"https://api.github.com/repos/HabitRPG/habitrpg/issues{/number}","pulls_url":"https://api.github.com/repos/HabitRPG/habitrpg/pulls{/number}","milestones_url":"https://api.github.com/repos/HabitRPG/habitrpg/milestones{/number}","notifications_url":"https://api.github.com/repos/HabitRPG/habitrpg/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/HabitRPG/habitrpg/labels{/name}","releases_url":"https://api.github.com/repos/HabitRPG/habitrpg/releases{/id}","created_at":"2012-06-06T22:49:48Z","updated_at":"2015-09-26T15:35:13Z","pushed_at":"2015-09-25T23:11:58Z","git_url":"git://github.com/HabitRPG/habitrpg.git","ssh_url":"git@github.com:HabitRPG/habitrpg.git","clone_url":"https://github.com/HabitRPG/habitrpg.git","svn_url":"https://github.com/HabitRPG/habitrpg","homepage":"habitrpg.com","size":292638,"stargazers_count":3087,"watchers_count":3087,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1225,"mirror_url":null,"open_issues_count":433,"forks":1225,"open_issues":433,"watchers":3087,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/5976"},"html":{"href":"https://github.com/HabitRPG/habitrpg/pull/5976"},"issue":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/issues/5976"},"comments":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/issues/5976/comments"},"review_comments":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/5976/comments"},"review_comment":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/pulls/5976/commits"},"statuses":{"href":"https://api.github.com/repos/HabitRPG/habitrpg/statuses/cc6117fd173432807e0f472d11f2a2a06e996dd2"}}}}