1 |
package Frey::MapReduce; |
2 |
use Moose; |
3 |
|
4 |
extends 'Frey'; |
5 |
with 'Frey::Web'; |
6 |
with 'Frey::Storage'; |
7 |
with 'Frey::File'; |
8 |
|
9 |
use YAML qw/LoadFile/; |
10 |
|
11 |
has path => ( |
12 |
is => 'rw', |
13 |
isa => 'Str', |
14 |
required => 1, |
15 |
default => 'var/introspect/', |
16 |
); |
17 |
|
18 |
sub as_markup { |
19 |
my ($self) = @_; |
20 |
|
21 |
my $introspect; |
22 |
|
23 |
my @files = map { |
24 |
my $path = $_; |
25 |
my $data = LoadFile( $path ); |
26 |
$data = [ keys %{ $data->{ 'runnable' } } ]; |
27 |
|
28 |
my $class = $path; |
29 |
$class =~ s{^(.*/)?([^/]+)\.ya?ml$}{$2}; |
30 |
$introspect->{ $class } = $data; |
31 |
$_; |
32 |
} $self->dir_extension( $self->path, qr{\.(ya?ml)$} ); |
33 |
|
34 |
warn "# introspect ", $self->dump( $introspect ); |
35 |
|
36 |
$self->store('var/Frey/Class/Browser/runnable.yaml', $introspect ); |
37 |
|
38 |
return $self->dump({ |
39 |
files => \@files, |
40 |
introspect => $introspect, |
41 |
}); |
42 |
} |
43 |
|
44 |
1; |