aboutsummaryrefslogtreecommitdiff
path: root/lib/WebCoso
diff options
context:
space:
mode:
authordakkar <dakkar@luxion>2006-01-28 11:14:52 +0000
committerdakkar <dakkar@luxion>2006-01-28 11:14:52 +0000
commit77591ad357f28be9a727710a1dfc5e044a459000 (patch)
treeb7c854aaad81bb07feab72560f7e79862340bc94 /lib/WebCoso
parentil driver fa le due passate, fix #1 (diff)
downloadWebCoso-77591ad357f28be9a727710a1dfc5e044a459000.tar.gz
WebCoso-77591ad357f28be9a727710a1dfc5e044a459000.tar.bz2
WebCoso-77591ad357f28be9a727710a1dfc5e044a459000.zip
pipeline fatte e testate, forse fix #2
git-svn-id: svn://luxion/repos/WebCoso/trunk@142 fcb26f47-9200-0410-b104-b98ab5b095f3
Diffstat (limited to 'lib/WebCoso')
-rw-r--r--lib/WebCoso/Pipeline/Base.pm20
-rw-r--r--lib/WebCoso/Step/Base.pm14
2 files changed, 27 insertions, 7 deletions
diff --git a/lib/WebCoso/Pipeline/Base.pm b/lib/WebCoso/Pipeline/Base.pm
index 7018fc0..1e43d4d 100644
--- a/lib/WebCoso/Pipeline/Base.pm
+++ b/lib/WebCoso/Pipeline/Base.pm
@@ -10,25 +10,31 @@ __PACKAGE__->mk_classdata('_steps');
sub set_steps {
my ($class,@steps)=@_;
- my @full_steps=map {
- my $full_step_name="WebCoso::Step::$_";
+ my @step_instances=();
+
+ while (@steps) {
+ my $step_name=shift @steps;
+ my $step_init_args=shift @steps;
+
+ my $full_step_name="WebCoso::Step::$step_name";
if (! WebCoso::Step->is_step($full_step_name)) {
WebCoso::X::NoSuchStep->throw(
pipeline => $class,
step => $_,
);
}
- $full_step_name;
- } @steps;
- $class->_steps([@full_steps]);
+ push @step_instances,$full_step_name->new($step_init_args);
+ }
+
+ $class->_steps([@step_instances]);
}
sub process {
- my ($class, $resource)=@_;
+ my ($class, $resource,$stage)=@_;
for my $step (@{$class->_steps()}) {
- $resource = $step->process($resource);
+ $resource = $step->process($resource,$stage);
}
return 1;
diff --git a/lib/WebCoso/Step/Base.pm b/lib/WebCoso/Step/Base.pm
new file mode 100644
index 0000000..f15370c
--- /dev/null
+++ b/lib/WebCoso/Step/Base.pm
@@ -0,0 +1,14 @@
+package WebCoso::Step::Base;
+use strict;
+use warnings;
+use WebCoso::X;
+use WebCoso::Step;
+
+sub new {
+ my ($class,$arg_ref)=@_;
+
+ my $self={%$arg_ref};
+ return bless $self,$class;
+}
+
+1;