{"action":"created","comment":{"url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/comments/24279175","id":24279175,"diff_hunk":"@@ -0,0 +1,207 @@\n+require 'csv'\n+\n+class DinoDex\n+  DINO_FILENAME1 = \"dinodex.csv\"\n+  DINO_FILENAME2 = \"african_dinosaur_export.csv\"\n+\n+  attr_accessor :dino_data\n+\n+  def initialize\n+    @dino_data = parse_dino_files\n+  end\n+\n+  def parse_dino_files\n+    dino_data1 = CSV.read(DINO_FILENAME1, headers: true)\n+    dino_data2 = CSV.read(DINO_FILENAME2, headers: true)\n+\n+    prune_period_values(merge_data(dino_data1, dino_data2))\n+  end\n+\n+  def grab_all_bipeds\n+    filter_by_column(\"WALKING\", \"Biped\")\n+  end\n+\n+  def grab_all_carnivores\n+    filter_by_column(\"DIET\", \"Carnivore\")\n+  end\n+\n+  def grab_all_jurassics\n+    filter_by_column(\"PERIOD\", \"Jurassic\")\n+  end\n+\n+  def grab_all_big_dinos\n+    filter_by_weight_greater_than_or_equal_to(2000)\n+  end\n+\n+  def grab_all_small_dinos\n+    filter_by_weight_less_than(2000)\n+  end\n+\n+  def grab_dino_by_name(dino_name)\n+    filter_by_column(\"NAME\", dino_name)\n+  end\n+\n+  private\n+\n+  # Duplicating this CSV table is inefficient and won't scale with larger sets\n+  # of data.  I'm lazy.\n+  def duplicate_csv_table(csv_table)\n+    CSV.parse(csv_table.to_s, headers: true)\n+  end\n+\n+  def filter_by_weight_greater_than_or_equal_to(weight)\n+    duplicate_csv_table(@dino_data).delete_if do |row|\n+      (row[\"WEIGHT_IN_LBS\"].to_i <= weight.to_i) ||\n+        (row[\"WEIGHT_IN_LBS\"].to_i == 0)\n+    end\n+  end\n+\n+  def filter_by_weight_less_than(weight)\n+    duplicate_csv_table(@dino_data).delete_if do |row|\n+      (row[\"WEIGHT_IN_LBS\"].to_i > weight.to_i) ||\n+        (row[\"WEIGHT_IN_LBS\"].to_i == 0)\n+    end\n+  end\n+\n+  def filter_by_column(column, filter)\n+    duplicate_csv_table(@dino_data).delete_if do |row|\n+      row[column] != filter\n+    end\n+  end\n+\n+  # This data transformation is brittle, be careful.\n+  def merge_data(csv_table1, csv_table2)\n+    csv_table2.each do |row|\n+      csv_table1 << [\n+        row[\"Genus\"],                         # NAME\n+        row[\"Period\"],                        # PERIOD\n+        nil,                                  # CONTINENT\n+        convert_carnivore(row[\"Carnivore\"]),  # DIET\n+        row[\"Weight\"],                        # WEIGHT_IN_LBS\n+        row[\"Walking\"],                       # WALKING\n+        nil                                   # DESCRIPTION\n+      ]\n+    end\n+\n+    csv_table1\n+  end\n+\n+  def prune_period_values(csv_table)\n+    csv_table.each do |row|\n+      row[\"PERIOD\"].gsub!(\"Late \", \"\")\n+      row[\"PERIOD\"].gsub!(\"Early \", \"\")\n+    end\n+\n+    csv_table\n+  end\n+\n+  def convert_carnivore(carnivore_bool)\n+    return \"Carnivore\" if carnivore_bool == \"Yes\"\n+    \"Herbivore\"\n+  end\n+end\n+\n+class DinoDexPresenter","path":"dino_catalog/dinodex.rb","position":104,"original_position":104,"commit_id":"910f963159211fe41ad92e21b86bf913f29fed82","original_commit_id":"910f963159211fe41ad92e21b86bf913f29fed82","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},"body":"Don't inflict your laziness on other people. Maybe you don't want to write good code at all. Still should, 'eh?","created_at":"2015-02-06T23:00:31Z","updated_at":"2015-02-06T23:00:31Z","html_url":"https://github.com/jmmastey/level_up_exercises/pull/490#discussion_r24279175","pull_request_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/490","_links":{"self":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/comments/24279175"},"html":{"href":"https://github.com/jmmastey/level_up_exercises/pull/490#discussion_r24279175"},"pull_request":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/490"}}},"pull_request":{"url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/490","id":28829443,"html_url":"https://github.com/jmmastey/level_up_exercises/pull/490","diff_url":"https://github.com/jmmastey/level_up_exercises/pull/490.diff","patch_url":"https://github.com/jmmastey/level_up_exercises/pull/490.patch","issue_url":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/490","number":490,"state":"open","locked":false,"title":"Adding my version of dinodex, revised after ruby style guide exercise","user":{"login":"plasticwrapper","id":67192,"avatar_url":"https://avatars.githubusercontent.com/u/67192?v=3","gravatar_id":"","url":"https://api.github.com/users/plasticwrapper","html_url":"https://github.com/plasticwrapper","followers_url":"https://api.github.com/users/plasticwrapper/followers","following_url":"https://api.github.com/users/plasticwrapper/following{/other_user}","gists_url":"https://api.github.com/users/plasticwrapper/gists{/gist_id}","starred_url":"https://api.github.com/users/plasticwrapper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/plasticwrapper/subscriptions","organizations_url":"https://api.github.com/users/plasticwrapper/orgs","repos_url":"https://api.github.com/users/plasticwrapper/repos","events_url":"https://api.github.com/users/plasticwrapper/events{/privacy}","received_events_url":"https://api.github.com/users/plasticwrapper/received_events","type":"User","site_admin":false},"body":"Cuz Joe Said So","created_at":"2015-02-06T18:12:47Z","updated_at":"2015-02-06T23:00:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7dfac0910af14c4c0ce7bfb9605b5f18800577dd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/490/commits","review_comments_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/490/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/490/comments","statuses_url":"https://api.github.com/repos/jmmastey/level_up_exercises/statuses/910f963159211fe41ad92e21b86bf913f29fed82","head":{"label":"plasticwrapper:dinodex_exercise","ref":"dinodex_exercise","sha":"910f963159211fe41ad92e21b86bf913f29fed82","user":{"login":"plasticwrapper","id":67192,"avatar_url":"https://avatars.githubusercontent.com/u/67192?v=3","gravatar_id":"","url":"https://api.github.com/users/plasticwrapper","html_url":"https://github.com/plasticwrapper","followers_url":"https://api.github.com/users/plasticwrapper/followers","following_url":"https://api.github.com/users/plasticwrapper/following{/other_user}","gists_url":"https://api.github.com/users/plasticwrapper/gists{/gist_id}","starred_url":"https://api.github.com/users/plasticwrapper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/plasticwrapper/subscriptions","organizations_url":"https://api.github.com/users/plasticwrapper/orgs","repos_url":"https://api.github.com/users/plasticwrapper/repos","events_url":"https://api.github.com/users/plasticwrapper/events{/privacy}","received_events_url":"https://api.github.com/users/plasticwrapper/received_events","type":"User","site_admin":false},"repo":{"id":30372590,"name":"level_up_exercises","full_name":"plasticwrapper/level_up_exercises","owner":{"login":"plasticwrapper","id":67192,"avatar_url":"https://avatars.githubusercontent.com/u/67192?v=3","gravatar_id":"","url":"https://api.github.com/users/plasticwrapper","html_url":"https://github.com/plasticwrapper","followers_url":"https://api.github.com/users/plasticwrapper/followers","following_url":"https://api.github.com/users/plasticwrapper/following{/other_user}","gists_url":"https://api.github.com/users/plasticwrapper/gists{/gist_id}","starred_url":"https://api.github.com/users/plasticwrapper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/plasticwrapper/subscriptions","organizations_url":"https://api.github.com/users/plasticwrapper/orgs","repos_url":"https://api.github.com/users/plasticwrapper/repos","events_url":"https://api.github.com/users/plasticwrapper/events{/privacy}","received_events_url":"https://api.github.com/users/plasticwrapper/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/plasticwrapper/level_up_exercises","description":"A series of code-related assignments to challenge starting engineers","fork":true,"url":"https://api.github.com/repos/plasticwrapper/level_up_exercises","forks_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/forks","keys_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/keys{/key_id}","collaborators_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/teams","hooks_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/hooks","issue_events_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/issues/events{/number}","events_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/events","assignees_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/assignees{/user}","branches_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/branches{/branch}","tags_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/tags","blobs_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/git/refs{/sha}","trees_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/git/trees{/sha}","statuses_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/statuses/{sha}","languages_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/languages","stargazers_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/stargazers","contributors_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/contributors","subscribers_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/subscribers","subscription_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/subscription","commits_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/commits{/sha}","git_commits_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/git/commits{/sha}","comments_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/comments{/number}","issue_comment_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/issues/comments/{number}","contents_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/contents/{+path}","compare_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/compare/{base}...{head}","merges_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/merges","archive_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/downloads","issues_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/issues{/number}","pulls_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/pulls{/number}","milestones_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/milestones{/number}","notifications_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/labels{/name}","releases_url":"https://api.github.com/repos/plasticwrapper/level_up_exercises/releases{/id}","created_at":"2015-02-05T19:00:22Z","updated_at":"2015-02-05T19:00:22Z","pushed_at":"2015-02-06T22:24:04Z","git_url":"git://github.com/plasticwrapper/level_up_exercises.git","ssh_url":"git@github.com:plasticwrapper/level_up_exercises.git","clone_url":"https://github.com/plasticwrapper/level_up_exercises.git","svn_url":"https://github.com/plasticwrapper/level_up_exercises","homepage":"http://leveluprails.herokuapp.com","size":120749,"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":"f208d381f275b417df72d3cdf6562ceb443bfd3a","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-23T17:55:29Z","pushed_at":"2015-01-23T17:55:29Z","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":120749,"stargazers_count":14,"watchers_count":14,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":71,"mirror_url":null,"open_issues_count":4,"forks":71,"open_issues":4,"watchers":14,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/490"},"html":{"href":"https://github.com/jmmastey/level_up_exercises/pull/490"},"issue":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/490"},"comments":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/490/comments"},"review_comments":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/490/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/490/commits"},"statuses":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/statuses/910f963159211fe41ad92e21b86bf913f29fed82"}}}}