mediawiki report publishing
[scpubgit/System-Introspector-Report.git] / lib / System / Introspector / Report / Publish / MediaWiki / Page.pm
CommitLineData
499ebcdd 1package System::Introspector::Report::Publish::MediaWiki::Page;
2use Moo;
3
21e7cc98 4use aliased 'System::Introspector::Report::Publish::MediaWiki::Parser';
5use aliased 'System::Introspector::Report::Publish::MediaWiki::Producer';
6use aliased 'System::Introspector::Report::Updater';
7
8has name => (is => 'ro', required => 1);
0331d9cd 9has timestamp => (is => 'ro', predicate => 'has_timestamp');
21e7cc98 10has content => (is => 'rwp', required => 1);
11
12my $_producer = Producer->new;
13my $_parser = Parser->new;
14my $_updater = Updater->new;
499ebcdd 15
16sub update {
17 my ($self, $update_stream) = @_;
21e7cc98 18 my $original_stream = $_parser->parse($self->content);
19 my $merged_stream = $_updater->merge($original_stream, $update_stream);
20 $self->_set_content($_producer->render($merged_stream));
21 return 1;
499ebcdd 22}
23
241;