Commit | Line | Data |
499ebcdd |
1 | package System::Introspector::Report::Publish::MediaWiki::Page; |
2 | use Moo; |
3 | |
21e7cc98 |
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); |
0331d9cd |
9 | has timestamp => (is => 'ro', predicate => 'has_timestamp'); |
21e7cc98 |
10 | has content => (is => 'rwp', required => 1); |
11 | |
12 | my $_producer = Producer->new; |
13 | my $_parser = Parser->new; |
14 | my $_updater = Updater->new; |
499ebcdd |
15 | |
16 | sub 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 | |
24 | 1; |