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