{"action":"created","comment":{"url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/comments/23479099","id":23479099,"diff_hunk":"@@ -0,0 +1,220 @@\n+// Get all the keys from document\n+var keys = document.querySelectorAll('#bomb span');\n+var operators = ['+', '-', 'x', '÷'];\n+var decimalAdded = false;\n+\n+// Add onclick event to all the keys and perform operations\n+for(var i = 0; i < keys.length; i++) {\n+  keys[i].onclick = function(e) {\n+    // Get the input and button values\n+    var input = document.querySelector('.screen');\n+    var inputVal = input.innerHTML;\n+    var btnVal = this.innerHTML;\n+\n+    // Now, just append the key values (btnValue) to the input string and finally use javascript's eval function to get the result\n+    // If clear key is pressed, erase everything\n+    if(btnVal == 'C') {\n+      input.innerHTML = '';\n+      decimalAdded = false;\n+    }\n+\n+    // If eval key is pressed, calculate and display the result\n+    else if(btnVal == '=') {\n+      var equation = inputVal;\n+      var lastChar = equation[equation.length - 1];\n+\n+      // Replace all instances of x and ÷ with * and / respectively. This can be done easily using regex and the 'g' tag which will replace all instances of the matched character/substring\n+      equation = equation.replace(/x/g, '*').replace(/÷/g, '/');\n+\n+      // Final thing left to do is checking the last character of the equation. If it's an operator or a decimal, remove it\n+      if(operators.indexOf(lastChar) > -1 || lastChar == '.')\n+        equation = equation.replace(/.$/, '');\n+\n+      if(equation)\n+        input.innerHTML = eval(equation);\n+\n+      decimalAdded = false;\n+    }\n+\n+    // Basic functionality of the calculator is complete. But there are some problems like\n+    // 1. No two operators should be added consecutively.\n+    // 2. The equation shouldn't start from an operator except minus\n+    // 3. not more than 1 decimal should be there in a number\n+\n+    // We'll fix these issues using some simple checks\n+\n+    // indexOf works only in IE9+\n+    else if(operators.indexOf(btnVal) > -1) {\n+      // Operator is clicked\n+      // Get the last character from the equation\n+      var lastChar = inputVal[inputVal.length - 1];\n+\n+      // Only add operator if input is not empty and there is no operator at the last\n+      if(inputVal != '' && operators.indexOf(lastChar) == -1)\n+        input.innerHTML += btnVal;\n+\n+      // Allow minus if the string is empty\n+      else if(inputVal == '' && btnVal == '-')\n+        input.innerHTML += btnVal;\n+\n+      // Replace the last operator (if exists) with the newly pressed operator\n+      if(operators.indexOf(lastChar) > -1 && inputVal.length > 1) {\n+        // Here, '.' matches any character while $ denotes the end of string, so anything (will be an operator in this case) at the end of string will get replaced by new operator\n+        input.innerHTML = inputVal.replace(/.$/, btnVal);\n+      }\n+\n+      decimalAdded =false;\n+    }\n+\n+    // Now only the decimal problem is left. We can solve it easily using a flag 'decimalAdded' which we'll set once the decimal is added and prevent more decimals to be added once it's set. It will be reset when an operator, eval or clear key is pressed.\n+    else if(btnVal == '.') {\n+      if(!decimalAdded) {\n+        input.innerHTML += btnVal;\n+        decimalAdded = true;\n+      }\n+    }\n+\n+    // if any other key is pressed, just append it\n+    else {\n+      input.innerHTML += btnVal;\n+    }\n+\n+    // prevent page jumps\n+    e.preventDefault();\n+  }\n+}\n+\n+$(document).ready( function() {\n+\n+      $(\".wire_btn\").click(function(){\n+        var btn_color = this.id.split(\"_\")[0];\n+        var datalist = { color: btn_color, bomb_id: $(\"#bomb_id\").val() };\n+        $.ajax({\n+          type: \"POST\",\n+          url: \"http://localhost:9292/bomb/diffuse\",\n+          data: JSON.stringify(datalist),\n+          dataType: \"json\",\n+          success: function(returnObject)\n+          {\n+          }\n+        });\n+      })\n+\n+      var keys = document.querySelectorAll('#bomb span');\n+      for(var i = 0; i < keys.length; i++) {\n+        keys[i].onclick = function(e) {\n+          var input = document.querySelector('.screen');\n+          var inputVal = input.innerHTML;\n+          var btnVal = this.innerHTML;\n+          if(btnVal == 'Activate'){\n+          $( \"#dialog-confirm\" ).dialog({\n+              resizable: false,\n+              height:200,\n+              modal: true,\n+              buttons: {\n+                \"Activate bomb?\": function() {\n+                  evaluateCode(input.innerHTML, btnVal, $(\"#bomb_id\").val());\n+                  $( this ).dialog( \"close\" );\n+                },\n+                Cancel: function() {\n+                  $( this ).dialog( \"close\" );\n+                }\n+              }\n+            });\n+          }\n+          else if((btnVal == 'Submit') || (btnVal == 'Deactivate'))  {\n+            evaluateCode(input.innerHTML, btnVal, $(\"#bomb_id\").val());\n+          }\n+          else if (btnVal == 'Configure')\n+          {\n+            configureBomb();\n+          }\n+          else if(btnVal == 'C') {\n+            input.innerHTML = '';\n+          }\n+          else {\n+            input.innerHTML += btnVal;\n+          }\n+        }\n+      }\n+      var start = 0;\n+      var refreshId = window.setInterval(function(){\n+        $.ajax({\n+          type: \"GET\",\n+          url: \"http://localhost:9292/bomb/\"+$(\"#bomb_id\").val(),","path":"overlord/public/bomb.js","position":144,"original_position":144,"commit_id":"ef72cb1738ee66f376571cfb679b996d75c081c3","original_commit_id":"ef72cb1738ee66f376571cfb679b996d75c081c3","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":"Use relative paths so that you don't have to dictate hostname and port.","created_at":"2015-01-23T20:48:03Z","updated_at":"2015-01-23T20:48:03Z","html_url":"https://github.com/jmmastey/level_up_exercises/pull/441#discussion_r23479099","pull_request_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/441","_links":{"self":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/comments/23479099"},"html":{"href":"https://github.com/jmmastey/level_up_exercises/pull/441#discussion_r23479099"},"pull_request":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/441"}}},"pull_request":{"url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/441","id":27653674,"html_url":"https://github.com/jmmastey/level_up_exercises/pull/441","diff_url":"https://github.com/jmmastey/level_up_exercises/pull/441.diff","patch_url":"https://github.com/jmmastey/level_up_exercises/pull/441.patch","issue_url":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/441","number":441,"state":"open","locked":false,"title":"Add overlord","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":"PR for overlord part 1","created_at":"2015-01-20T04:42:51Z","updated_at":"2015-01-23T20:48:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"72e9c65773a4d69646d28881cb24d6cdcb6266c4","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/441/commits","review_comments_url":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/441/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/441/comments","statuses_url":"https://api.github.com/repos/jmmastey/level_up_exercises/statuses/ef72cb1738ee66f376571cfb679b996d75c081c3","head":{"label":"sriking1783:add_overlord","ref":"add_overlord","sha":"ef72cb1738ee66f376571cfb679b996d75c081c3","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-23T18:47:41Z","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":908,"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-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":118050,"stargazers_count":14,"watchers_count":14,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":64,"mirror_url":null,"open_issues_count":5,"forks":64,"open_issues":5,"watchers":14,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/441"},"html":{"href":"https://github.com/jmmastey/level_up_exercises/pull/441"},"issue":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/441"},"comments":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/issues/441/comments"},"review_comments":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/pulls/441/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/441/commits"},"statuses":{"href":"https://api.github.com/repos/jmmastey/level_up_exercises/statuses/ef72cb1738ee66f376571cfb679b996d75c081c3"}}}}