1 package MojoFacets::Code;
6 use base 'Mojolicious::Controller';
8 use Data::Dump qw(dump);
11 sub _code_dir { $_[0]->app->home->rel_dir('public') . '/code' }
16 return $self->redirect_to('/data/columns') unless $self->session('columns');
17 my $columns = { map { $_ => 1 } @{ $self->session('columns') } };
19 if ( $self->param('all_columns') ) {
20 $columns->{$_} = 1 foreach @{ $self->session('header') }
23 my $dir = $self->_code_dir;
28 foreach my $full_path ( glob("$dir/*.pl") ) {
29 my $path = $full_path;
30 $path =~ s/^$dir\/*//;
32 my ( $depends, $description ) = split(/\./,$path,2);
34 my @deps = split(/,/,$depends);
36 $found += $columns->{$_} foreach @deps;
37 warn "# depends $depends $found $#deps\n";
39 if ( $found != $#deps ) {
40 $self->param('all_code') ? $no_deps->{$depends}->{$description}++ : next;
43 $snippets->{$depends}->{$description} = read_file $full_path, binmode => ':utf8';
46 warn "# no_deps ",dump($no_deps);
49 snippets => $snippets,
56 if ( my $path = $self->param('path') ) {
57 unlink $self->_code_dir . '/' . $path;
59 return $self->redirect_to('/code');