mediawiki merging, row identification, tests
[scpubgit/System-Introspector-Report.git] / lib / System / Introspector / Report / Publish / MediaWiki / Page.pm
1 package System::Introspector::Report::Publish::MediaWiki::Page;
2 use Moo;
3
4 use aliased 'System::Introspector::Report::Publish::MediaWiki::Parser';
5 use aliased 'System::Introspector::Report::Publish::MediaWiki::Producer';
6 use aliased 'System::Introspector::Report::Updater';
7
8 has name      => (is => 'ro', required => 1);
9 has timestamp => (is => 'ro', required => 1);
10 has content   => (is => 'rwp', required => 1);
11
12 my $_producer = Producer->new;
13 my $_parser   = Parser->new;
14 my $_updater  = Updater->new;
15
16 sub update {
17   my ($self, $update_stream) = @_;
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;
22 }
23
24 1;