{"action":"created","comment":{"url":"https://api.github.com/repos/palantir/plottable/pulls/comments/38456511","id":38456511,"diff_hunk":"@@ -1,178 +1,256 @@\n ///<reference path=\"../testReference.ts\" />\n \n-describe(\"TimeScale tests\", () => {\n-    it.skip(\"extentOfValues() filters out invalid Dates\", () => {\n-      let scale = new Plottable.Scales.Time();\n-      let expectedExtent = [new Date(\"2015-06-05\"), new Date(\"2015-06-04\")];\n-      let arrayWithBadValues: any[] = [null, NaN, undefined, Infinity, -Infinity, \"a string\",\n-        0, new Date(\"2015-06-05\"), new Date(\"2015-06-04\")];\n-      let extent = scale.extentOfValues(arrayWithBadValues);\n-      assert.strictEqual(extent[0].getTime(), expectedExtent[0].getTime(), \"returned correct min\");\n-      assert.strictEqual(extent[1].getTime(), expectedExtent[1].getTime(), \"returned correct max\");\n+describe(\"Scales\", () => {\n+  describe(\"TimeScale tests\", () => {\n+\n+    describe(\"Basic Usage\", () => {\n+      let scale: Plottable.Scales.Time;\n+\n+      beforeEach(() => {\n+        scale = new Plottable.Scales.Time();\n+      });\n+\n+      it(\"calculates the correct extent\", () => {\n+        let date1 = new Date(2015, 2, 25, 19, 0, 0);\n+        let date2 = new Date(2015, 2, 24, 19, 0, 0);\n+        let date3 = new Date(2015, 2, 25, 19, 0, 0);\n+        let date4 = new Date(2015, 2, 26, 19, 0, 0);\n+        let values = [date1, date2, date3, date4];\n+\n+        let computedExtent = scale.extentOfValues(values);\n+\n+        assert.deepEqual(computedExtent, [date2, date4], \"The extent is the miminum and the maximum value in the domain\");\n+      });\n+\n+      it.skip(\"ignores invalid values when calculating the extent\", () => {\n+        let expectedExtent = [new Date(\"2015-06-05\"), new Date(\"2015-06-04\")];\n+        let arrayWithBadValues: any = [\n+          null,\n+          NaN,\n+          undefined,\n+          Infinity,\n+          -Infinity,\n+          \"a string\",\n+          0,\n+          expectedExtent[0],\n+          expectedExtent[1]\n+        ];\n+        let extent = scale.extentOfValues(arrayWithBadValues);\n+        assert.strictEqual(extent[0].getTime(), expectedExtent[0].getTime(), \"returned correct min\");\n+        assert.strictEqual(extent[1].getTime(), expectedExtent[1].getTime(), \"returned correct max\");\n+      });\n+\n+      it(\"can be padded\", () => {\n+        scale.padProportion(0);\n+        let unpaddedDomain = scale.domain();\n+        scale.addIncludedValuesProvider(() => unpaddedDomain);\n+        scale.padProportion(0.1);\n+        assert.operator(scale.domain()[0].getTime(), \"<\", unpaddedDomain[0].getTime(), \"left side of domain was padded\");\n+        assert.operator(scale.domain()[1].getTime(), \">\", unpaddedDomain[1].getTime(), \"right side of domain was padded\");\n+      });\n+\n+      it(\"respects padding exceptions\", () => {\n+        let minValue = new Date(2000, 5, 4);\n+        let maxValue = new Date(2000, 5, 6);\n+        scale.addIncludedValuesProvider(() => [minValue, maxValue]);\n+        assert.operator(scale.domain()[0].getTime(), \"<\", minValue.getTime(), \"left side of domain is normally padded\");\n+        assert.operator(scale.domain()[1].getTime(), \">\", maxValue.getTime(), \"right side of domain is normally padded\");\n+        scale.addPaddingExceptionsProvider(() => [minValue]);\n+        assert.strictEqual(scale.domain()[0].getTime(), minValue.getTime(),\n+          \"left side of domain isn't padded if it matches the exception\");\n+        let maxValuePaddingException = () => [maxValue];\n+        scale.addPaddingExceptionsProvider(maxValuePaddingException);\n+        assert.strictEqual(scale.domain()[1].getTime(), maxValue.getTime(),\n+          \"right side of domain isn't padded if it matches the exception\");\n+\n+        scale.removePaddingExceptionsProvider(maxValuePaddingException);\n+        assert.strictEqual(scale.domain()[0].getTime(), minValue.getTime(),\n+          \"left side of domain still isn't padded\");\n+        assert.operator(scale.domain()[1].getTime(), \">\", maxValue.getTime(),\n+          \"right side of the domain is padded again because exception was removed\");\n+      });\n+\n+      it(\"can't set reversed domain\", () => {\n+        assert.throws(() => scale.domain([new Date(\"1986-10-26\"), new Date(\"1985-11-05\")]), \"chronological\");\n+      });\n+\n+      it(\"produces correct number of ticks\", () => {\n+        // 100 year span\n+        scale.domain([new Date(2000, 0, 1, 0, 0, 0, 0), new Date(2100, 0, 1, 0, 0, 0, 0)]);\n+        let yearTicks = scale.tickInterval(Plottable.TimeInterval.year);\n+        assert.strictEqual(yearTicks.length, 101, \"generated correct number of ticks for 100 year span, every year\");\n+        // 1 year span\n+        scale.domain([new Date(2000, 0, 1, 0, 0, 0, 0), new Date(2000, 11, 31, 0, 0, 0, 0)]);\n+        let monthTicks = scale.tickInterval(Plottable.TimeInterval.month);\n+        assert.strictEqual(monthTicks.length, 12, \"generated correct number of ticks for 1 year span, every month\");\n+        let threeMonthTicks = scale.tickInterval(Plottable.TimeInterval.month, 3);\n+        assert.strictEqual(threeMonthTicks.length, 4, \"generated correct number of ticks for 1 year span, every 3 months\");\n+        // 1 month span\n+        scale.domain([new Date(2000, 0, 1, 0, 0, 0, 0), new Date(2000, 1, 1, 0, 0, 0, 0)]);\n+        let dayTicks = scale.tickInterval(Plottable.TimeInterval.day);\n+        assert.strictEqual(dayTicks.length, 32, \"generated correct number of ticks for 1 month span, every day\");\n+        // 1 day span\n+        scale.domain([new Date(2000, 0, 1, 0, 0, 0, 0), new Date(2000, 0, 1, 23, 0, 0, 0)]);\n+        let hourTicks = scale.tickInterval(Plottable.TimeInterval.hour);\n+        assert.strictEqual(hourTicks.length, 24, \"generated correct number of ticks for 1 day span, every hour\");\n+        // 1 hour span\n+        scale.domain([new Date(2000, 0, 1, 0, 0, 0, 0), new Date(2000, 0, 1, 1, 0, 0, 0)]);\n+        let minuteTicks = scale.tickInterval(Plottable.TimeInterval.minute);\n+        assert.strictEqual(minuteTicks.length, 61, \"generated correct number of ticks for 1 hour span, every minute\");\n+        let tenMinuteTicks = scale.tickInterval(Plottable.TimeInterval.minute, 10);\n+        assert.strictEqual(tenMinuteTicks.length, 7, \"generated correct number of ticks for 1 hour span, every 10 minutes\");\n+        // 1 minute span\n+        scale.domain([new Date(2000, 0, 1, 0, 0, 0, 0), new Date(2000, 0, 1, 0, 1, 0, 0)]);\n+        let secondTicks = scale.tickInterval(Plottable.TimeInterval.second);\n+        assert.strictEqual(secondTicks.length, 61, \"generated correct number of ticks for 1 minute span, every second\");\n+      });\n     });\n \n-  it(\"can be padded\", () => {\n-    let scale = new Plottable.Scales.Time();\n-    scale.padProportion(0);\n-    let unpaddedDomain = scale.domain();\n-    scale.addIncludedValuesProvider((scale: Plottable.Scales.Time) => unpaddedDomain);\n-    scale.padProportion(0.1);\n-    assert.operator(scale.domain()[0].getTime(), \"<\", unpaddedDomain[0].getTime(), \"left side of domain was padded\");\n-    assert.operator(scale.domain()[1].getTime(), \">\", unpaddedDomain[1].getTime(), \"right side of domain was padded\");\n-  });\n+    describe(\"Auto Domaining\", () => {","path":"test/scales/timeScaleTests.ts","position":127,"original_position":127,"commit_id":"ef3fd2e3366bb827723dbad6851634d8fc9bfac5","original_commit_id":"ef3fd2e3366bb827723dbad6851634d8fc9bfac5","user":{"login":"ztsai","id":1817638,"avatar_url":"https://avatars.githubusercontent.com/u/1817638?v=3","gravatar_id":"","url":"https://api.github.com/users/ztsai","html_url":"https://github.com/ztsai","followers_url":"https://api.github.com/users/ztsai/followers","following_url":"https://api.github.com/users/ztsai/following{/other_user}","gists_url":"https://api.github.com/users/ztsai/gists{/gist_id}","starred_url":"https://api.github.com/users/ztsai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ztsai/subscriptions","organizations_url":"https://api.github.com/users/ztsai/orgs","repos_url":"https://api.github.com/users/ztsai/repos","events_url":"https://api.github.com/users/ztsai/events{/privacy}","received_events_url":"https://api.github.com/users/ztsai/received_events","type":"User","site_admin":false},"body":"everything else looks good except this describe block description \r\nthere's tests for autoDomain(), domainMin(), and domainMax() here","created_at":"2015-09-01T18:50:08Z","updated_at":"2015-09-01T18:50:08Z","html_url":"https://github.com/palantir/plottable/pull/2688#discussion_r38456511","pull_request_url":"https://api.github.com/repos/palantir/plottable/pulls/2688","_links":{"self":{"href":"https://api.github.com/repos/palantir/plottable/pulls/comments/38456511"},"html":{"href":"https://github.com/palantir/plottable/pull/2688#discussion_r38456511"},"pull_request":{"href":"https://api.github.com/repos/palantir/plottable/pulls/2688"}}},"pull_request":{"url":"https://api.github.com/repos/palantir/plottable/pulls/2688","id":43579690,"html_url":"https://github.com/palantir/plottable/pull/2688","diff_url":"https://github.com/palantir/plottable/pull/2688.diff","patch_url":"https://github.com/palantir/plottable/pull/2688.patch","issue_url":"https://api.github.com/repos/palantir/plottable/issues/2688","number":2688,"state":"open","locked":false,"title":"Refactor time scale tests - Pass 1","user":{"login":"aicioara","id":3248682,"avatar_url":"https://avatars.githubusercontent.com/u/3248682?v=3","gravatar_id":"","url":"https://api.github.com/users/aicioara","html_url":"https://github.com/aicioara","followers_url":"https://api.github.com/users/aicioara/followers","following_url":"https://api.github.com/users/aicioara/following{/other_user}","gists_url":"https://api.github.com/users/aicioara/gists{/gist_id}","starred_url":"https://api.github.com/users/aicioara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aicioara/subscriptions","organizations_url":"https://api.github.com/users/aicioara/orgs","repos_url":"https://api.github.com/users/aicioara/repos","events_url":"https://api.github.com/users/aicioara/events{/privacy}","received_events_url":"https://api.github.com/users/aicioara/received_events","type":"User","site_admin":false},"body":"Part of #2640 \r\n\r\nI will be doing 2 passes because I will get more context (and better sense of best practices) by refactoring other files. However, please flag anything that seems unusual.\r\n\r\nSkipped tests will be solved as part of \r\n- https://github.com/palantir/plottable/issues/2705\r\n- https://github.com/palantir/plottable/issues/2689\r\n\r\nAs part of this: \r\n- **Test semantics: hierarchy, naming, testing, but no coverage check**\r\n- Applied best practices from the wiki page\r\n- Factored out common code into `beforeEach()` clauses\r\n- No nested `beforeEach()`es\r\n- Cleaned the console\r\n- Remade hierarchy as shown bellow\r\n![screen shot 2015-08-31 at 2 12 26 pm](https://cloud.githubusercontent.com/assets/3248682/9590573/58c0ec38-4fea-11e5-849b-f1c50d56020a.png)\r\n\r\n","created_at":"2015-08-27T23:40:48Z","updated_at":"2015-09-01T18:50:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e5d224d92208d4f447683231a39ba25585b6841a","assignee":{"login":"ztsai","id":1817638,"avatar_url":"https://avatars.githubusercontent.com/u/1817638?v=3","gravatar_id":"","url":"https://api.github.com/users/ztsai","html_url":"https://github.com/ztsai","followers_url":"https://api.github.com/users/ztsai/followers","following_url":"https://api.github.com/users/ztsai/following{/other_user}","gists_url":"https://api.github.com/users/ztsai/gists{/gist_id}","starred_url":"https://api.github.com/users/ztsai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ztsai/subscriptions","organizations_url":"https://api.github.com/users/ztsai/orgs","repos_url":"https://api.github.com/users/ztsai/repos","events_url":"https://api.github.com/users/ztsai/events{/privacy}","received_events_url":"https://api.github.com/users/ztsai/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/palantir/plottable/milestones/49","html_url":"https://github.com/palantir/plottable/milestones/v1.10.0","labels_url":"https://api.github.com/repos/palantir/plottable/milestones/49/labels","id":1258916,"number":49,"title":"v1.10.0","description":"","creator":{"login":"christinaforney","id":1559622,"avatar_url":"https://avatars.githubusercontent.com/u/1559622?v=3","gravatar_id":"","url":"https://api.github.com/users/christinaforney","html_url":"https://github.com/christinaforney","followers_url":"https://api.github.com/users/christinaforney/followers","following_url":"https://api.github.com/users/christinaforney/following{/other_user}","gists_url":"https://api.github.com/users/christinaforney/gists{/gist_id}","starred_url":"https://api.github.com/users/christinaforney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/christinaforney/subscriptions","organizations_url":"https://api.github.com/users/christinaforney/orgs","repos_url":"https://api.github.com/users/christinaforney/repos","events_url":"https://api.github.com/users/christinaforney/events{/privacy}","received_events_url":"https://api.github.com/users/christinaforney/received_events","type":"User","site_admin":false},"open_issues":14,"closed_issues":0,"state":"open","created_at":"2015-08-17T18:49:33Z","updated_at":"2015-09-01T17:08:07Z","due_on":"2015-09-04T04:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/palantir/plottable/pulls/2688/commits","review_comments_url":"https://api.github.com/repos/palantir/plottable/pulls/2688/comments","review_comment_url":"https://api.github.com/repos/palantir/plottable/pulls/comments{/number}","comments_url":"https://api.github.com/repos/palantir/plottable/issues/2688/comments","statuses_url":"https://api.github.com/repos/palantir/plottable/statuses/ef3fd2e3366bb827723dbad6851634d8fc9bfac5","head":{"label":"palantir:refactorTimeScale","ref":"refactorTimeScale","sha":"ef3fd2e3366bb827723dbad6851634d8fc9bfac5","user":{"login":"palantir","id":303157,"avatar_url":"https://avatars.githubusercontent.com/u/303157?v=3","gravatar_id":"","url":"https://api.github.com/users/palantir","html_url":"https://github.com/palantir","followers_url":"https://api.github.com/users/palantir/followers","following_url":"https://api.github.com/users/palantir/following{/other_user}","gists_url":"https://api.github.com/users/palantir/gists{/gist_id}","starred_url":"https://api.github.com/users/palantir/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/palantir/subscriptions","organizations_url":"https://api.github.com/users/palantir/orgs","repos_url":"https://api.github.com/users/palantir/repos","events_url":"https://api.github.com/users/palantir/events{/privacy}","received_events_url":"https://api.github.com/users/palantir/received_events","type":"Organization","site_admin":false},"repo":{"id":16149854,"name":"plottable","full_name":"palantir/plottable","owner":{"login":"palantir","id":303157,"avatar_url":"https://avatars.githubusercontent.com/u/303157?v=3","gravatar_id":"","url":"https://api.github.com/users/palantir","html_url":"https://github.com/palantir","followers_url":"https://api.github.com/users/palantir/followers","following_url":"https://api.github.com/users/palantir/following{/other_user}","gists_url":"https://api.github.com/users/palantir/gists{/gist_id}","starred_url":"https://api.github.com/users/palantir/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/palantir/subscriptions","organizations_url":"https://api.github.com/users/palantir/orgs","repos_url":"https://api.github.com/users/palantir/repos","events_url":"https://api.github.com/users/palantir/events{/privacy}","received_events_url":"https://api.github.com/users/palantir/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/palantir/plottable","description":"A library of modular chart components, built on D3","fork":false,"url":"https://api.github.com/repos/palantir/plottable","forks_url":"https://api.github.com/repos/palantir/plottable/forks","keys_url":"https://api.github.com/repos/palantir/plottable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/palantir/plottable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/palantir/plottable/teams","hooks_url":"https://api.github.com/repos/palantir/plottable/hooks","issue_events_url":"https://api.github.com/repos/palantir/plottable/issues/events{/number}","events_url":"https://api.github.com/repos/palantir/plottable/events","assignees_url":"https://api.github.com/repos/palantir/plottable/assignees{/user}","branches_url":"https://api.github.com/repos/palantir/plottable/branches{/branch}","tags_url":"https://api.github.com/repos/palantir/plottable/tags","blobs_url":"https://api.github.com/repos/palantir/plottable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/palantir/plottable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/palantir/plottable/git/refs{/sha}","trees_url":"https://api.github.com/repos/palantir/plottable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/palantir/plottable/statuses/{sha}","languages_url":"https://api.github.com/repos/palantir/plottable/languages","stargazers_url":"https://api.github.com/repos/palantir/plottable/stargazers","contributors_url":"https://api.github.com/repos/palantir/plottable/contributors","subscribers_url":"https://api.github.com/repos/palantir/plottable/subscribers","subscription_url":"https://api.github.com/repos/palantir/plottable/subscription","commits_url":"https://api.github.com/repos/palantir/plottable/commits{/sha}","git_commits_url":"https://api.github.com/repos/palantir/plottable/git/commits{/sha}","comments_url":"https://api.github.com/repos/palantir/plottable/comments{/number}","issue_comment_url":"https://api.github.com/repos/palantir/plottable/issues/comments{/number}","contents_url":"https://api.github.com/repos/palantir/plottable/contents/{+path}","compare_url":"https://api.github.com/repos/palantir/plottable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/palantir/plottable/merges","archive_url":"https://api.github.com/repos/palantir/plottable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/palantir/plottable/downloads","issues_url":"https://api.github.com/repos/palantir/plottable/issues{/number}","pulls_url":"https://api.github.com/repos/palantir/plottable/pulls{/number}","milestones_url":"https://api.github.com/repos/palantir/plottable/milestones{/number}","notifications_url":"https://api.github.com/repos/palantir/plottable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/palantir/plottable/labels{/name}","releases_url":"https://api.github.com/repos/palantir/plottable/releases{/id}","created_at":"2014-01-22T19:29:19Z","updated_at":"2015-09-01T11:53:14Z","pushed_at":"2015-09-01T18:30:07Z","git_url":"git://github.com/palantir/plottable.git","ssh_url":"git@github.com:palantir/plottable.git","clone_url":"https://github.com/palantir/plottable.git","svn_url":"https://github.com/palantir/plottable","homepage":"plottablejs.org","size":134489,"stargazers_count":691,"watchers_count":691,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":70,"mirror_url":null,"open_issues_count":185,"forks":70,"open_issues":185,"watchers":691,"default_branch":"develop"}},"base":{"label":"palantir:develop","ref":"develop","sha":"5c6e694b1956bf18b3d2905a35ee5a302b8932e0","user":{"login":"palantir","id":303157,"avatar_url":"https://avatars.githubusercontent.com/u/303157?v=3","gravatar_id":"","url":"https://api.github.com/users/palantir","html_url":"https://github.com/palantir","followers_url":"https://api.github.com/users/palantir/followers","following_url":"https://api.github.com/users/palantir/following{/other_user}","gists_url":"https://api.github.com/users/palantir/gists{/gist_id}","starred_url":"https://api.github.com/users/palantir/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/palantir/subscriptions","organizations_url":"https://api.github.com/users/palantir/orgs","repos_url":"https://api.github.com/users/palantir/repos","events_url":"https://api.github.com/users/palantir/events{/privacy}","received_events_url":"https://api.github.com/users/palantir/received_events","type":"Organization","site_admin":false},"repo":{"id":16149854,"name":"plottable","full_name":"palantir/plottable","owner":{"login":"palantir","id":303157,"avatar_url":"https://avatars.githubusercontent.com/u/303157?v=3","gravatar_id":"","url":"https://api.github.com/users/palantir","html_url":"https://github.com/palantir","followers_url":"https://api.github.com/users/palantir/followers","following_url":"https://api.github.com/users/palantir/following{/other_user}","gists_url":"https://api.github.com/users/palantir/gists{/gist_id}","starred_url":"https://api.github.com/users/palantir/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/palantir/subscriptions","organizations_url":"https://api.github.com/users/palantir/orgs","repos_url":"https://api.github.com/users/palantir/repos","events_url":"https://api.github.com/users/palantir/events{/privacy}","received_events_url":"https://api.github.com/users/palantir/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/palantir/plottable","description":"A library of modular chart components, built on D3","fork":false,"url":"https://api.github.com/repos/palantir/plottable","forks_url":"https://api.github.com/repos/palantir/plottable/forks","keys_url":"https://api.github.com/repos/palantir/plottable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/palantir/plottable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/palantir/plottable/teams","hooks_url":"https://api.github.com/repos/palantir/plottable/hooks","issue_events_url":"https://api.github.com/repos/palantir/plottable/issues/events{/number}","events_url":"https://api.github.com/repos/palantir/plottable/events","assignees_url":"https://api.github.com/repos/palantir/plottable/assignees{/user}","branches_url":"https://api.github.com/repos/palantir/plottable/branches{/branch}","tags_url":"https://api.github.com/repos/palantir/plottable/tags","blobs_url":"https://api.github.com/repos/palantir/plottable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/palantir/plottable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/palantir/plottable/git/refs{/sha}","trees_url":"https://api.github.com/repos/palantir/plottable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/palantir/plottable/statuses/{sha}","languages_url":"https://api.github.com/repos/palantir/plottable/languages","stargazers_url":"https://api.github.com/repos/palantir/plottable/stargazers","contributors_url":"https://api.github.com/repos/palantir/plottable/contributors","subscribers_url":"https://api.github.com/repos/palantir/plottable/subscribers","subscription_url":"https://api.github.com/repos/palantir/plottable/subscription","commits_url":"https://api.github.com/repos/palantir/plottable/commits{/sha}","git_commits_url":"https://api.github.com/repos/palantir/plottable/git/commits{/sha}","comments_url":"https://api.github.com/repos/palantir/plottable/comments{/number}","issue_comment_url":"https://api.github.com/repos/palantir/plottable/issues/comments{/number}","contents_url":"https://api.github.com/repos/palantir/plottable/contents/{+path}","compare_url":"https://api.github.com/repos/palantir/plottable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/palantir/plottable/merges","archive_url":"https://api.github.com/repos/palantir/plottable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/palantir/plottable/downloads","issues_url":"https://api.github.com/repos/palantir/plottable/issues{/number}","pulls_url":"https://api.github.com/repos/palantir/plottable/pulls{/number}","milestones_url":"https://api.github.com/repos/palantir/plottable/milestones{/number}","notifications_url":"https://api.github.com/repos/palantir/plottable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/palantir/plottable/labels{/name}","releases_url":"https://api.github.com/repos/palantir/plottable/releases{/id}","created_at":"2014-01-22T19:29:19Z","updated_at":"2015-09-01T11:53:14Z","pushed_at":"2015-09-01T18:30:07Z","git_url":"git://github.com/palantir/plottable.git","ssh_url":"git@github.com:palantir/plottable.git","clone_url":"https://github.com/palantir/plottable.git","svn_url":"https://github.com/palantir/plottable","homepage":"plottablejs.org","size":134489,"stargazers_count":691,"watchers_count":691,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":70,"mirror_url":null,"open_issues_count":185,"forks":70,"open_issues":185,"watchers":691,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/palantir/plottable/pulls/2688"},"html":{"href":"https://github.com/palantir/plottable/pull/2688"},"issue":{"href":"https://api.github.com/repos/palantir/plottable/issues/2688"},"comments":{"href":"https://api.github.com/repos/palantir/plottable/issues/2688/comments"},"review_comments":{"href":"https://api.github.com/repos/palantir/plottable/pulls/2688/comments"},"review_comment":{"href":"https://api.github.com/repos/palantir/plottable/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/palantir/plottable/pulls/2688/commits"},"statuses":{"href":"https://api.github.com/repos/palantir/plottable/statuses/ef3fd2e3366bb827723dbad6851634d8fc9bfac5"}}}}