diff options
author | franck cuny <franck@lumberjaph.net> | 2010-05-15 10:13:04 +0200 |
---|---|---|
committer | franck cuny <franck@lumberjaph.net> | 2010-05-15 10:13:04 +0200 |
commit | 6ff4794c85444e6c4a2be50c9bd2df55df352f4f (patch) | |
tree | d8be34621d9243c6a1c04a05f214332d4d024ad1 /lib/presque/Role | |
parent | change status, 201 (created) instead of 204 (no content) (diff) | |
download | presque-6ff4794c85444e6c4a2be50c9bd2df55df352f4f.tar.gz |
role to check if queue_name is set before dispatch to http method
Diffstat (limited to 'lib/presque/Role')
-rw-r--r-- | lib/presque/Role/RequireQueue.pm | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/lib/presque/Role/RequireQueue.pm b/lib/presque/Role/RequireQueue.pm new file mode 100644 index 0000000..f9e6ec7 --- /dev/null +++ b/lib/presque/Role/RequireQueue.pm @@ -0,0 +1,28 @@ +package presque::Role::RequireQueue; + +use MooseX::Role::Parameterized; + +parameter methods => ( + isa => 'ArrayRef', + required => 1, +); + +role { + my $p = shift; + + my $methods = $p->methods; + + foreach my $m (@$methods) { + around $m => sub { + my $orig = shift; + my $self = shift; + my $queue_name = shift; + + return $self->http_error_queue if !$queue_name; + + $self->$orig($queue_name, @_); + }; + } +}; + +1; |