aboutsummaryrefslogtreecommitdiff
path: root/src/phorkie/Repository/Commit.php
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2012-04-17 09:37:39 +0200
committerChristian Weiske <cweiske@cweiske.de>2012-04-17 09:37:39 +0200
commita4a47e2f9bd26259f0f6256a9652a39836c56a4d (patch)
tree61203155fdb54f3ea9392a7558a3033d1ca2dd61 /src/phorkie/Repository/Commit.php
parentcc15ad10baad6a6f217dfe42673f28c6d0a4dff9 (diff)
downloadphorkie-a4a47e2f9bd26259f0f6256a9652a39836c56a4d.tar.gz
phorkie-a4a47e2f9bd26259f0f6256a9652a39836c56a4d.zip
show history in sidebar
Diffstat (limited to 'src/phorkie/Repository/Commit.php')
-rw-r--r--src/phorkie/Repository/Commit.php66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/phorkie/Repository/Commit.php b/src/phorkie/Repository/Commit.php
new file mode 100644
index 0000000..ec4a04a
--- /dev/null
+++ b/src/phorkie/Repository/Commit.php
@@ -0,0 +1,66 @@
+<?php
+namespace phorkie;
+
+
+class Repository_Commit
+{
+ public $hash;
+ public $committerName;
+ public $committerEmail;
+ public $committerTime;
+
+ public $linesAdded;
+ public $linesDeleted;
+ public $filesChanged;
+
+
+ public function getIconUrl()
+ {
+ //workaround for https://pear.php.net/bugs/bug.php?id=19384
+ require_once 'PEAR/Services/Libravatar.php';
+
+ $s = new \Services_Libravatar();
+ return $s->url('cweiske@cweiske.de'/*$this->committerEmail*/, array('s' => 32));
+ }
+
+ /**
+ * @return array Array with 7 fields, each has either "r", "g" or "n"
+ * ("red", "green" or "none")
+ */
+ public function getDots()
+ {
+ $r = $this->getDotNum($this->linesDeleted);
+ $g = $this->getDotNum($this->linesAdded);
+ $sum = $r + $g;
+ if ($sum > 7) {
+ $quot = ceil($sum / 7);
+ $r = int($r / $quot);
+ $g = int($g / $quot);
+ }
+ $string = str_repeat('g', $g) . str_repeat('r', $r) . str_repeat('n', 7 - $g - $r);
+
+ return str_split($string);
+ }
+
+ public function getDotNum($lines)
+ {
+ if ($lines == 0) {
+ return 0;
+ } else if ($lines == 1) {
+ return 1;
+ } else if ($lines == 2) {
+ return 2;
+ } else if ($lines == 3) {
+ return 3;
+ } else if ($lines == 4) {
+ return 4;
+ } else if ($lines < 10) {
+ return 5;
+ } else if ($lines < 50) {
+ return 6;
+ }
+ return 7;
+ }
+}
+
+?> \ No newline at end of file