12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package SugarTrail::Template::Slave;
- # STS holder
- # new()
-
- use strict;
- use warnings;
- use Carp;
-
- sub new {
- my $class = shift;
- my $args = shift;
- my $self = {};
- $self->{args} = $args;
- $self->{steps} = [];
- return bless $self, $class;
- }
-
- sub source {
- my $self = shift;
- return sprintf "%s\n\n%s%s", $self->head, $self->warnings, $self->body;
- }
-
- sub head {
- my $self = shift;
- my @head;
- push @head, sprintf "%s: %s", $_, $self->{meta}->{$_} foreach keys %{$self->{meta}};
- return join "\n", @head;
- }
-
- sub body {
- my $self = shift;
- my @source;
- push @source, $_->{line} foreach @{$self->{steps}};
- return join "\n", @source;
- }
-
- sub warnings {
- my $self = shift;
- my @warnings;
- foreach my $step (@{$self->{steps}}) {
- push @warnings, $_ foreach @{$step->{warnings}};
- }
- my $warnings;
- if (@warnings) {
- $warnings .= "---\n# SUGAR-TRAIL WARNINGS #\n\n";
- foreach (@warnings) {
- $warnings .= "> warning: $_\n";
- }
- $warnings .= "---\n\n";
- }
- return $warnings;
- }
-
-
- 1;
|