14 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
14 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
15 |
15 |
16 # ABSTRACT: Web interface for breakpad |
16 # ABSTRACT: Web interface for breakpad |
17 |
17 |
18 use Mojolicious::Lite; |
18 use Mojolicious::Lite; |
|
19 use Mojo::Loader qw/load_class/; |
19 use UUID; |
20 use UUID; |
20 use lib 'lib'; |
21 use lib 'lib'; |
21 |
22 |
22 use CrashTest::Models::Frame; |
23 use CrashTest::Models::Frame; |
23 use CrashTest::Models::Thread; |
24 use CrashTest::Models::Thread; |
24 use CrashTest::StackFilter; |
25 use CrashTest::StackFilter; |
25 |
26 |
26 app->attr(storage => sub { |
27 app->attr(storage => sub { |
27 my $self = shift; |
28 my $self = shift; |
28 my $loader = Mojo::Loader->new; |
|
29 |
29 |
30 my $storage_class = $self->app->config->{Storage}->{Type}; |
30 my $storage_class = $self->app->config->{Storage}->{Type}; |
31 if (my $e = $loader->load($storage_class)) { |
31 if (my $e = load_class($storage_class)) { |
32 die ref $e ? "Exception: $e" : 'Not found!'; |
32 die ref $e ? "Exception: $e" : 'Not found!'; |
33 } |
33 } |
34 |
34 |
35 state $storage = $storage_class->new( |
35 state $storage = $storage_class->new( |
36 config => $self->app->config->{Storage}, |
36 config => $self->app->config->{Storage}, |
39 return $storage; |
39 return $storage; |
40 }); |
40 }); |
41 |
41 |
42 app->attr(decode_queue => sub { |
42 app->attr(decode_queue => sub { |
43 my $self = shift; |
43 my $self = shift; |
44 my $loader = Mojo::Loader->new; |
|
45 |
44 |
46 my $decode_class = $self->app->config->{DecodeQueue}->{Type}; |
45 my $decode_class = $self->app->config->{DecodeQueue}->{Type}; |
47 if (my $e = $loader->load($decode_class)) { |
46 if (my $e = load_class($decode_class)) { |
48 die ref $e ? "Exception: $e" : 'Not found!'; |
47 die ref $e ? "Exception: $e" : 'Not found!'; |
49 } |
48 } |
50 |
49 |
51 state $decode = $decode_class->new( |
50 state $decode = $decode_class->new( |
52 config => $self->app->config->{DecodeQueue}, |
51 config => $self->app->config->{DecodeQueue}, |