{"action":"created","comment":{"url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/comments/23388074","id":23388074,"diff_hunk":"@@ -0,0 +1,43 @@\n+require 'spec_helper'\n+\n+describe Cohort do\n+  let(:data) { { \"A\" => { \"total_visits\" => 3, \"conversions\" => 2 } } }\n+\n+  let(:cohort) { described_class.new(data) }\n+\n+  before do\n+    file     = File.open(\"test_data.json\", \"w\")\n+    raw_data = [{ date: \"2015-01-01\", cohort: \"A\", result: 1 },\n+                { date: \"2015-01-01\", cohort: \"A\", result: 0 },\n+                { date: \"2015-01-01\", cohort: \"B\", result: 0 },\n+                { date: \"2015-01-01\", cohort: \"B\", result: 1 },\n+                { date: \"2015-01-02\", cohort: \"B\", result: 0 },\n+                { date: \"2015-01-02\", cohort: \"A\", result: 1 },\n+                { date: \"2015-01-02\", cohort: \"B\", result: 0 },\n+                { date: \"2015-01-02\", cohort: \"B\", result: 1 },\n+                { date: \"2015-01-03\", cohort: \"A\", result: 1 },\n+                { date: \"2015-01-03\", cohort: \"A\", result: 0 },\n+                { date: \"2015-01-03\", cohort: \"B\", result: 0 },\n+                { date: \"2015-01-03\", cohort: \"B\", result: 1 },\n+                { date: \"2015-01-03\", cohort: \"B\", result: 1 },\n+                { date: \"2015-01-03\", cohort: \"A\", result: 1 },\n+                { date: \"2015-01-03\", cohort: \"B\", result: 1 },\n+                { date: \"2015-01-03\", cohort: \"B\", result: 1 }]\n+    file.write(raw_data.map { |o| Hash[o.each_pair.to_a] }.to_json)","path":"data_science/spec/cohort_spec.rb","position":26,"original_position":26,"commit_id":"3ea1e4282a257da296644527123977ee7c390730","original_commit_id":"3ea1e4282a257da296644527123977ee7c390730","user":{"login":"zsyed1","id":8593056,"avatar_url":"https://avatars.githubusercontent.com/u/8593056?v=3","gravatar_id":"","url":"https://api.github.com/users/zsyed1","html_url":"https://github.com/zsyed1","followers_url":"https://api.github.com/users/zsyed1/followers","following_url":"https://api.github.com/users/zsyed1/following{/other_user}","gists_url":"https://api.github.com/users/zsyed1/gists{/gist_id}","starred_url":"https://api.github.com/users/zsyed1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zsyed1/subscriptions","organizations_url":"https://api.github.com/users/zsyed1/orgs","repos_url":"https://api.github.com/users/zsyed1/repos","events_url":"https://api.github.com/users/zsyed1/events{/privacy}","received_events_url":"https://api.github.com/users/zsyed1/received_events","type":"User","site_admin":false},"body":"This `raw_data` seems to be repeated in three places. So it makes sense to put this into a method in a helper file say `data_helper.rb`. That way if you have to change it, you only need to change it in one place. For example:\r\n\r\n`def raw_data\r\n  [{ date: \"2015-01-01\", cohort: \"A\", result: 1 },\r\n...\r\n}]\r\nend`","created_at":"2015-01-22T16:31:14Z","updated_at":"2015-01-22T16:31:14Z","html_url":"https://github.com/jmmastey/level_up_exercises/pull/449#discussion_r23388074","pull_request_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/449","_links":{"self":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/comments/23388074"},"html":{"href":"https://github.com/jmmastey/level_up_exercises/pull/449#discussion_r23388074"},"pull_request":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/449"}}},"pull_request":{"url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/449","id":27784296,"html_url":"https://github.com/jmmastey/level_up_exercises/pull/449","diff_url":"https://github.com/jmmastey/level_up_exercises/pull/449.diff","patch_url":"https://github.com/jmmastey/level_up_exercises/pull/449.patch","issue_url":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/449","number":449,"state":"open","locked":false,"title":"Add data science","user":{"login":"sriking1783","id":685231,"avatar_url":"https://avatars.githubusercontent.com/u/685231?v=3","gravatar_id":"","url":"https://api.github.com/users/sriking1783","html_url":"https://github.com/sriking1783","followers_url":"https://api.github.com/users/sriking1783/followers","following_url":"https://api.github.com/users/sriking1783/following{/other_user}","gists_url":"https://api.github.com/users/sriking1783/gists{/gist_id}","starred_url":"https://api.github.com/users/sriking1783/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sriking1783/subscriptions","organizations_url":"https://api.github.com/users/sriking1783/orgs","repos_url":"https://api.github.com/users/sriking1783/repos","events_url":"https://api.github.com/users/sriking1783/events{/privacy}","received_events_url":"https://api.github.com/users/sriking1783/received_events","type":"User","site_admin":false},"body":"Data science 2nd revision","created_at":"2015-01-21T18:49:12Z","updated_at":"2015-01-22T16:31:14Z","closed_at":null,"merged_at":null,"merge_commit_sha":"19c9eb73f6e07bce100bf11dd6b8289a0418532e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/449/commits","review_comments_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/449/comments","review_comment_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/comments/{number}","comments_url":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/449/comments","statuses_url":"https://api.github.com/repos/jmmastey/level_up_exercises/statuses/3ea1e4282a257da296644527123977ee7c390730","head":{"label":"sriking1783:add_data_science","ref":"add_data_science","sha":"3ea1e4282a257da296644527123977ee7c390730","user":{"login":"sriking1783","id":685231,"avatar_url":"https://avatars.githubusercontent.com/u/685231?v=3","gravatar_id":"","url":"https://api.github.com/users/sriking1783","html_url":"https://github.com/sriking1783","followers_url":"https://api.github.com/users/sriking1783/followers","following_url":"https://api.github.com/users/sriking1783/following{/other_user}","gists_url":"https://api.github.com/users/sriking1783/gists{/gist_id}","starred_url":"https://api.github.com/users/sriking1783/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sriking1783/subscriptions","organizations_url":"https://api.github.com/users/sriking1783/orgs","repos_url":"https://api.github.com/users/sriking1783/repos","events_url":"https://api.github.com/users/sriking1783/events{/privacy}","received_events_url":"https://api.github.com/users/sriking1783/received_events","type":"User","site_admin":false},"repo":{"id":24351857,"name":"level_up_exercises","full_name":"sriking1783/level_up_exercises","owner":{"login":"sriking1783","id":685231,"avatar_url":"https://avatars.githubusercontent.com/u/685231?v=3","gravatar_id":"","url":"https://api.github.com/users/sriking1783","html_url":"https://github.com/sriking1783","followers_url":"https://api.github.com/users/sriking1783/followers","following_url":"https://api.github.com/users/sriking1783/following{/other_user}","gists_url":"https://api.github.com/users/sriking1783/gists{/gist_id}","starred_url":"https://api.github.com/users/sriking1783/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sriking1783/subscriptions","organizations_url":"https://api.github.com/users/sriking1783/orgs","repos_url":"https://api.github.com/users/sriking1783/repos","events_url":"https://api.github.com/users/sriking1783/events{/privacy}","received_events_url":"https://api.github.com/users/sriking1783/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sriking1783/level_up_exercises","description":"A long series of code-related assignments to challenge starting engineers","fork":true,"url":"https://api.github.com/repos/sriking1783/level_up_exercises","forks_url":"https://api.github.com/repos/sriking1783/level_up_exercises/forks","keys_url":"https://api.github.com/repos/sriking1783/level_up_exercises/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sriking1783/level_up_exercises/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sriking1783/level_up_exercises/teams","hooks_url":"https://api.github.com/repos/sriking1783/level_up_exercises/hooks","issue_events_url":"https://api.github.com/repos/sriking1783/level_up_exercises/issues/events{/number}","events_url":"https://api.github.com/repos/sriking1783/level_up_exercises/events","assignees_url":"https://api.github.com/repos/sriking1783/level_up_exercises/assignees{/user}","branches_url":"https://api.github.com/repos/sriking1783/level_up_exercises/branches{/branch}","tags_url":"https://api.github.com/repos/sriking1783/level_up_exercises/tags","blobs_url":"https://api.github.com/repos/sriking1783/level_up_exercises/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sriking1783/level_up_exercises/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sriking1783/level_up_exercises/git/refs{/sha}","trees_url":"https://api.github.com/repos/sriking1783/level_up_exercises/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sriking1783/level_up_exercises/statuses/{sha}","languages_url":"https://api.github.com/repos/sriking1783/level_up_exercises/languages","stargazers_url":"https://api.github.com/repos/sriking1783/level_up_exercises/stargazers","contributors_url":"https://api.github.com/repos/sriking1783/level_up_exercises/contributors","subscribers_url":"https://api.github.com/repos/sriking1783/level_up_exercises/subscribers","subscription_url":"https://api.github.com/repos/sriking1783/level_up_exercises/subscription","commits_url":"https://api.github.com/repos/sriking1783/level_up_exercises/commits{/sha}","git_commits_url":"https://api.github.com/repos/sriking1783/level_up_exercises/git/commits{/sha}","comments_url":"https://api.github.com/repos/sriking1783/level_up_exercises/comments{/number}","issue_comment_url":"https://api.github.com/repos/sriking1783/level_up_exercises/issues/comments/{number}","contents_url":"https://api.github.com/repos/sriking1783/level_up_exercises/contents/{+path}","compare_url":"https://api.github.com/repos/sriking1783/level_up_exercises/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sriking1783/level_up_exercises/merges","archive_url":"https://api.github.com/repos/sriking1783/level_up_exercises/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sriking1783/level_up_exercises/downloads","issues_url":"https://api.github.com/repos/sriking1783/level_up_exercises/issues{/number}","pulls_url":"https://api.github.com/repos/sriking1783/level_up_exercises/pulls{/number}","milestones_url":"https://api.github.com/repos/sriking1783/level_up_exercises/milestones{/number}","notifications_url":"https://api.github.com/repos/sriking1783/level_up_exercises/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sriking1783/level_up_exercises/labels{/name}","releases_url":"https://api.github.com/repos/sriking1783/level_up_exercises/releases{/id}","created_at":"2014-09-23T01:16:29Z","updated_at":"2014-09-23T01:25:00Z","pushed_at":"2015-01-21T20:22:50Z","git_url":"git://github.com/sriking1783/level_up_exercises.git","ssh_url":"git@github.com:sriking1783/level_up_exercises.git","clone_url":"https://github.com/sriking1783/level_up_exercises.git","svn_url":"https://github.com/sriking1783/level_up_exercises","homepage":null,"size":885,"stargazers_count":0,"watchers_count":0,"language":"Ruby","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":"jmmastey:master","ref":"master","sha":"83585586ff1201f7ff2a735121760a363e37ef50","user":{"login":"jmmastey","id":302011,"avatar_url":"https://avatars.githubusercontent.com/u/302011?v=3","gravatar_id":"","url":"https://api.github.com/users/jmmastey","html_url":"https://github.com/jmmastey","followers_url":"https://api.github.com/users/jmmastey/followers","following_url":"https://api.github.com/users/jmmastey/following{/other_user}","gists_url":"https://api.github.com/users/jmmastey/gists{/gist_id}","starred_url":"https://api.github.com/users/jmmastey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmmastey/subscriptions","organizations_url":"https://api.github.com/users/jmmastey/orgs","repos_url":"https://api.github.com/users/jmmastey/repos","events_url":"https://api.github.com/users/jmmastey/events{/privacy}","received_events_url":"https://api.github.com/users/jmmastey/received_events","type":"User","site_admin":false},"repo":{"id":20705648,"name":"level_up_exercises","full_name":"jmmastey/level_up_exercises","owner":{"login":"jmmastey","id":302011,"avatar_url":"https://avatars.githubusercontent.com/u/302011?v=3","gravatar_id":"","url":"https://api.github.com/users/jmmastey","html_url":"https://github.com/jmmastey","followers_url":"https://api.github.com/users/jmmastey/followers","following_url":"https://api.github.com/users/jmmastey/following{/other_user}","gists_url":"https://api.github.com/users/jmmastey/gists{/gist_id}","starred_url":"https://api.github.com/users/jmmastey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jmmastey/subscriptions","organizations_url":"https://api.github.com/users/jmmastey/orgs","repos_url":"https://api.github.com/users/jmmastey/repos","events_url":"https://api.github.com/users/jmmastey/events{/privacy}","received_events_url":"https://api.github.com/users/jmmastey/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jmmastey/level_up_exercises","description":"A series of code-related assignments to challenge starting engineers","fork":false,"url":"https://api.github.com/repos/jmmastey/level_up_exercises","forks_url":"https://api.github.com/repos/jmmastey/level_up_exercises/forks","keys_url":"https://api.github.com/repos/jmmastey/level_up_exercises/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jmmastey/level_up_exercises/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jmmastey/level_up_exercises/teams","hooks_url":"https://api.github.com/repos/jmmastey/level_up_exercises/hooks","issue_events_url":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/events{/number}","events_url":"https://api.github.com/repos/jmmastey/level_up_exercises/events","assignees_url":"https://api.github.com/repos/jmmastey/level_up_exercises/assignees{/user}","branches_url":"https://api.github.com/repos/jmmastey/level_up_exercises/branches{/branch}","tags_url":"https://api.github.com/repos/jmmastey/level_up_exercises/tags","blobs_url":"https://api.github.com/repos/jmmastey/level_up_exercises/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jmmastey/level_up_exercises/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jmmastey/level_up_exercises/git/refs{/sha}","trees_url":"https://api.github.com/repos/jmmastey/level_up_exercises/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jmmastey/level_up_exercises/statuses/{sha}","languages_url":"https://api.github.com/repos/jmmastey/level_up_exercises/languages","stargazers_url":"https://api.github.com/repos/jmmastey/level_up_exercises/stargazers","contributors_url":"https://api.github.com/repos/jmmastey/level_up_exercises/contributors","subscribers_url":"https://api.github.com/repos/jmmastey/level_up_exercises/subscribers","subscription_url":"https://api.github.com/repos/jmmastey/level_up_exercises/subscription","commits_url":"https://api.github.com/repos/jmmastey/level_up_exercises/commits{/sha}","git_commits_url":"https://api.github.com/repos/jmmastey/level_up_exercises/git/commits{/sha}","comments_url":"https://api.github.com/repos/jmmastey/level_up_exercises/comments{/number}","issue_comment_url":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/comments/{number}","contents_url":"https://api.github.com/repos/jmmastey/level_up_exercises/contents/{+path}","compare_url":"https://api.github.com/repos/jmmastey/level_up_exercises/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jmmastey/level_up_exercises/merges","archive_url":"https://api.github.com/repos/jmmastey/level_up_exercises/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jmmastey/level_up_exercises/downloads","issues_url":"https://api.github.com/repos/jmmastey/level_up_exercises/issues{/number}","pulls_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls{/number}","milestones_url":"https://api.github.com/repos/jmmastey/level_up_exercises/milestones{/number}","notifications_url":"https://api.github.com/repos/jmmastey/level_up_exercises/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jmmastey/level_up_exercises/labels{/name}","releases_url":"https://api.github.com/repos/jmmastey/level_up_exercises/releases{/id}","created_at":"2014-06-10T23:42:24Z","updated_at":"2015-01-16T22:40:40Z","pushed_at":"2015-01-16T22:40:40Z","git_url":"git://github.com/jmmastey/level_up_exercises.git","ssh_url":"git@github.com:jmmastey/level_up_exercises.git","clone_url":"https://github.com/jmmastey/level_up_exercises.git","svn_url":"https://github.com/jmmastey/level_up_exercises","homepage":"http://leveluprails.herokuapp.com","size":118050,"stargazers_count":13,"watchers_count":13,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":62,"mirror_url":null,"open_issues_count":12,"forks":62,"open_issues":12,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/449"},"html":{"href":"https://github.com/jmmastey/level_up_exercises/pull/449"},"issue":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/449"},"comments":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/449/comments"},"review_comments":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/449/comments"},"review_comment":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/449/commits"},"statuses":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/statuses/3ea1e4282a257da296644527123977ee7c390730"}}}}