1 package System::Introspector::Report::Publish::MediaWiki;
3 use aliased 'System::Introspector::Report::Publish::MediaWiki::Producer';
4 use aliased 'System::Introspector::Report::Publish::MediaWiki::Connection';
12 has producer => (is => 'lazy', handles => {
13 _render_page => 'render',
16 has connection => (is => 'ro', lazy => 1, builder => 1, handles => {
21 sub _build_producer { Producer->new }
22 sub _build_connection { Connection->new }
25 my ($self, $reports) = @_;
26 my $pages = $self->page_options;
27 for my $page (sort keys %$pages) {
28 $self->_publish_page($reports, $page, $pages->{$page});
34 my ($self, $reports, $included) = @_;
36 $self->_prepare_matcher_from($_);
37 } ref($included) ? @{$included} : $included;
39 for my $report (@$reports) {
40 my ($group_idx) = grep {
41 $self->_match_id($report, $matchers[$_]);
43 if (defined $group_idx) {
44 push @{$grouped[$group_idx]}, $report;
47 return [ map { (@$_) } @grouped ];
51 my ($self, $reports, $page, $options) = @_;
52 my $sorted = $self->_sort_reports($reports, $options->{report} || []);
53 print $self->_render_page($sorted);
54 # print $self->render_report($_)
60 System::Introspector::Report::Publish::API