summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordoy <doy@tozt.net>2009-04-26 22:23:08 -0500
committerdoy <doy@tozt.net>2009-04-26 22:23:08 -0500
commit32e96dd47b9ca6e2ee14f3c8ada101d45cd56c88 (patch)
tree804d955fa974f6bd22a407d1ba949de04b577158
parent9c808599ef1ec7a1eb77ecb7fa85735dee71ef1a (diff)
downloadbot-games-32e96dd47b9ca6e2ee14f3c8ada101d45cd56c88.tar.gz
bot-games-32e96dd47b9ca6e2ee14f3c8ada101d45cd56c88.zip
refactor say to allow arbitrary formatters
-rw-r--r--lib/Bot/Games.pm7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/Bot/Games.pm b/lib/Bot/Games.pm
index fb8df7c..a1de583 100644
--- a/lib/Bot/Games.pm
+++ b/lib/Bot/Games.pm
@@ -42,10 +42,11 @@ sub BUILD {
my $self = shift;
$say = sub {
shift;
- return $self->say(%$say_args, body => $self->_format(@_)) if @_ == 1;
+ unshift @_, 'body' if @_ % 2 == 1;
my %overrides = @_;
- $overrides{body} = $self->_format($overrides{body})
- if exists $overrides{body};
+ my $formatter = delete $overrides{formatter};
+ $overrides{body} = $formatter->($overrides{body})
+ if $formatter && exists $overrides{body};
return $self->say(%$say_args, %overrides);
};
require Bot::Games::Game;