diff options
author | doy <doy@tozt.net> | 2009-04-26 22:23:08 -0500 |
---|---|---|
committer | doy <doy@tozt.net> | 2009-04-26 22:23:08 -0500 |
commit | 32e96dd47b9ca6e2ee14f3c8ada101d45cd56c88 (patch) | |
tree | 804d955fa974f6bd22a407d1ba949de04b577158 | |
parent | 9c808599ef1ec7a1eb77ecb7fa85735dee71ef1a (diff) | |
download | bot-games-32e96dd47b9ca6e2ee14f3c8ada101d45cd56c88.tar.gz bot-games-32e96dd47b9ca6e2ee14f3c8ada101d45cd56c88.zip |
refactor say to allow arbitrary formatters
-rw-r--r-- | lib/Bot/Games.pm | 7 |
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; |