summaryrefslogtreecommitdiff
path: root/lib/StarGit.pm
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2011-06-13 16:29:58 +0200
committerfranck cuny <franck@lumberjaph.net>2011-06-13 16:29:58 +0200
commit967e0cefb06e0c7d4eae46ad6844380693392881 (patch)
treecf0c023eaf2462cc2eff1f810cb8a2a4ac657071 /lib/StarGit.pm
parentinitial import (diff)
downloadstargit-967e0cefb06e0c7d4eae46ad6844380693392881.tar.gz
import old gitmap to new stargit repo
Signed-off-by: franck cuny <franck@lumberjaph.net>
Diffstat (limited to '')
-rw-r--r--lib/StarGit.pm38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/StarGit.pm b/lib/StarGit.pm
index 161e4a7..72933da 100644
--- a/lib/StarGit.pm
+++ b/lib/StarGit.pm
@@ -1,10 +1,48 @@
package StarGit;
use Dancer ':syntax';
+use StarGit::Graph;
+
our $VERSION = '0.1';
+set serializer => 'JSON';
+
get '/' => sub {
template 'index';
};
+get '/graph/local/:name' => sub {
+ my $name = params->{'name'};
+
+ my $graph = StarGit::Graph->new( name => $name );
+ $graph->neighbors( $name, 1 );
+ $graph->remove_leaves();
+
+ return _finalize($graph);
+};
+
+get '/graph/query' => sub {
+ my $language = params->{language};
+
+ my $graph = StarGit::Graph->new( language => $language );
+ $graph->build_from_query();
+
+ return _finalize($graph);
+};
+
+get '/graph/attributes' => sub {
+ my $graph_settings = setting('graph');
+ my $attributes = $graph_settings->{attributes};
+ return { attributes => $attributes };
+};
+
+sub _finalize {
+ my $graph = shift;
+
+ my @nodes = values %{ $graph->nodes };
+ my @edges = values %{ $graph->edges };
+
+ return { nodes => \@nodes, edges => \@edges, };
+}
+
true;